Subject: Re: OT: recommendation for vm tuning for anoncvs mirror?
To: None <firstname.lastname@example.org>
From: Jeff Rizzo <email@example.com>
Date: 02/26/2005 16:04:09
Thor Lancelot Simon wrote:
>On Sat, Feb 26, 2005 at 03:06:42PM -0600, Tracy Di Marco White wrote:
>>In message <4220E340.firstname.lastname@example.org>, Jeff Rizzo writes:
>>>I'm setting up a machine for a mirror of anoncvs, and it has 4G of RAM.
>>>I'm trying to take maximum advantage of it to keep the CVS repository in
>>>RAM (in case it's not clear, this is the NetBSD CVS repository, which is
>>>over 3G is size) to maximize performance.
>>>Despite various tweaks I've made to things, I'm having a hard time
>>>getting the file cache (which is the one I assume I should care about)
>>>much over 1.5G - consequently things get pretty slow at times. Can
>>>anyone who might already be running an anoncvs mirror suggest some
>>>settings to start with? I've also bumped kern.maxvnodes to 500000.
>>The applicable things in /etc/sysctl.conf:
>You will need some other things, too.
>Note that with a very very small change to vfs_bio to add a buffer size for
>512-byte fragments (the way the code is now, they will take up 1k) you
>will get significantly more efficient use of the metadata cache.
hm, does this involve just tweaking MEMPOOL_INDEX_OFFSET in
kern/vfs_bio.c, or is there more to it?
>All this will help, but it will not be enough, by itself, to give you
>acceptable performance on a busy anoncvs server.
>For that, you will need at least one other thing: You will need to put
>/anon-root/tmp on a separate physical disk or disks. Again, make this a
>4k/512 filesystem. Mount it async and newfs it fresh at every boot (mark
>it noauto in /etc/fstab, newfs and mount it from /etc/rc.local or a separate
Is the purpose of this for LockDir? Not knowing a tremendous amount
about CVS's internals myself, I wonder if some of the read-only
repository patches available in later (than the 1.11.17 that comes
w/NetBSD) CVS might help with this? I wasn't originally planning on
having separate spindles, but clearly I need to rethink this... I
suppose I can simply not raid the disks, as all the data is mirrored
from other sources anyway - I'll live with a dead disk taking the system
>If you have separate disk(s) for the anoncvs data itself, you can
>probably get away with putting /anon-root/tmp on the same physical
>disk(s) as / (if you are running without a chroot for the anoncvs data,
>you are living very dangerously but in that case apply what I said about
>"/anon-root/tmp" to "/tmp").
Yeah, there is a chroot. I wouldn't set something this hairy up without
>You'll want to be sure all filesystems on the machine are mounted noatime,
>and I would strongly recommend mounting the actual anoncvs data softdep to
>keep the cost of syncing down.
>If all this does not prove to be enough we have a modified cvs executable
>available that we could provide to you. But try the stuff Tracy and I have
>described first and see how it goes.
These are some incredibly useful tips that I'm sure would have taken me
months to come by (if I came by them at all) on my own. Thanks a
_lot_. I think it might be useful to have some of it in the mirrors FAQ...
I'll proceed with rearranging my disks now. - I suppose I should have
done this _before_ installing in a colo 50 miles from here. :)