Subject: Re: observations on a large-memory system.
To: Chuck Silvers <firstname.lastname@example.org>
From: Thor Lancelot Simon <email@example.com>
Date: 06/19/2001 17:16:55
On Mon, Jun 18, 2001 at 11:45:32PM -0700, Chuck Silvers wrote:
> > Has the memory consumption per vnode dropped with UBC, or are the vnode
> > structures themselves no longer in wired kernel memory? 200,000 vnodes
> > used to be entirely impractical because it consumed a massive amount of
> > wired KVA space.
> vnodes are still in wired kernel memory. 200000 vnodes used to be
> impractical more because configuring even 1 buffer for each of 200000
> vnodes would require 12.8 GB of kernel virtual space because of how
> buffers use 64KB of virtual space each regardless of the amount of
> physical memory per buffer (usually 8KB).
Actually, I think there's another issue here. Unless I miscount, struct
vnode is about 100 bytes on x86; on LP64 platforms it's significantly
larger since it's got lots of longs and pointers in it.
About a year ago, we discovered a serious performance problem caused by
rsync on ftp.netbsd.org: rsync thrashes the namei cache by stating every
vnode in the tree to by rsynced, which on nbftp meant somewhere over 100,000
vnodes. We attempted to increase NVNODE to address this issue and discovered
that the amount of wired physical memory the kernel required to increase it
sufficiently gave the pmap fits.
In our 200,000 vnode case we're discussing, we're talking about wiring down
20MB in the kernel for vnodes. Is this less problematic now than it was
Thor Lancelot Simon firstname.lastname@example.org
And now he couldn't remember when this passion had flown, leaving him so
foolish and bewildered and astray: can any man?