From owner-freebsd-current@FreeBSD.ORG Mon Jul 9 23:14:17 2007 Return-Path: X-Original-To: current@freebsd.org Delivered-To: freebsd-current@FreeBSD.ORG Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 6E99516A41F; Mon, 9 Jul 2007 23:14:17 +0000 (UTC) (envelope-from huang@gddsn.org.cn) Received: from gddsn.org.cn (gddsn.org.cn [218.19.164.145]) by mx1.freebsd.org (Postfix) with ESMTP id B515713C46E; Mon, 9 Jul 2007 23:13:56 +0000 (UTC) (envelope-from huang@gddsn.org.cn) Received: from tp.gddsn.org.cn (unknown [121.28.82.130]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by gddsn.org.cn (Postfix) with ESMTP id 989EA38CB4F; Mon, 9 Jul 2007 20:43:44 +0800 (CST) Message-ID: <46922D75.4010006@gddsn.org.cn> Date: Mon, 09 Jul 2007 20:43:33 +0800 From: Huang wen hui User-Agent: Thunderbird 2.0.0.0 (X11/20070528) MIME-Version: 1.0 To: Pawel Jakub Dawidek References: <200707071426.18202.dfr@rabson.org> <20070709000918.GD1208@garage.freebsd.pl> In-Reply-To: <20070709000918.GD1208@garage.freebsd.pl> Content-Type: text/plain; charset=GB2312 Content-Transfer-Encoding: 8bit Cc: current@freebsd.org Subject: Re: ZFS leaking vnodes (sort of) X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jul 2007 23:14:17 -0000 Pawel Jakub Dawidek дµÀ: > On Sat, Jul 07, 2007 at 02:26:17PM +0100, Doug Rabson wrote: > >> I've been testing ZFS recently and I noticed some performance issues >> while doing large-scale port builds on a ZFS mounted /usr/ports tree. >> Eventually I realised that virtually nothing ever ended up on the vnode >> free list. This meant that when the system reached its maximum vnode >> limit, it had to resort to reclaiming vnodes from the various >> filesystem's active vnode lists (via vlrureclaim). Since those lists >> are not sorted in LRU order, this led to pessimal cache performance >> after the system got into that state. >> >> I looked a bit closer at the ZFS code and poked around with DDB and I >> think the problem was caused by a couple of extraneous calls to vhold >> when creating a new ZFS vnode. On FreeBSD, getnewvnode returns a vnode >> which is already held (not on the free list) so there is no need to >> call vhold again. >> > > Whoa! Nice catch... The patch works here - I did some pretty heavy > tests, so please commit it ASAP. > > I also wonder if this can help with some of those 'kmem_map too small' > panics. I was observing that ARC cannot reclaim memory and this may be > because all vnodes and thus associated data are beeing held. > > To ZFS users having problems with performance and/or stability of ZFS: > Can you test the patch and see if it helps? > my T60p notebook, -CURRENT amd64: buildworld time before patch: 58xx second. buildworld time after path: 28xx second. Thanks!