How does disk caching work?
gemini at geminix.org
Sun Apr 18 23:37:56 PDT 2004
Jim C. Nasby wrote:
> On Sat, Apr 17, 2004 at 09:41:19AM +0200, Uwe Doering wrote:
> A few questions if I may...
> What's a good way to tune amount of space dedicated to IO buffers?
You can tune the number of i/o buffers, and therefore indirectly the
amount of memory they may allocate, by using the variable 'kern.nbuf' in
'/boot/loader.conf'. Note that this number gets multiplied by 16384
(the default filesystem block size) to arrive at the amount of memory it
My experience is that with large amounts of RAM this area becomes
unduely big, though. It's not that you have to skimp on RAM in this
enviroment, but the disk i/o buffers eat away at the KVM region (kernel
virtual memory), which happens to be just 1 GB by default and doesn't
grow with the RAM size. So it can be a good idea to actually reduce the
number of disk i/o buffers (compared to its auto-scaled default) on
systems with plenty of RAM (since you don't need that many buffers,
anyway, due to the VM interaction I just described) and save the
available KVM rather for other purposes (kernel resources). Systems
that run out of KVM are prone to kernel panics, given the right
combination of circumstances.
> What impact will vm_min|max_cache have on system performance? Is there
> any advantage to setting it fairly high?
I'm not quite sure which variables you are referring to. In FreeBSD
there are 'vm.v_cache_min' and 'vm.v_cache_max'. I don't recommend
tuning them, though, without having a very deep and thorough look at the
kernel sources. Many of these variables don't really do what their name
suggests, and there are interdependencies between some of them. You can
lock up your server by tuning them improperly.
> The machine I'm tuning is a dual Opteron box with 4G of ram, a mirror
> and a 6 disk RAID10. It's running PostgreSQL.
I'm not a PostgreSQL expert, but there have been discussions on this
mailing list and elsewhere about tuning PostgreSQL. I suggest to take a
look at the archives.
Uwe Doering | EscapeBox - Managed On-Demand UNIX Servers
gemini at geminix.org | http://www.escapebox.net
More information about the freebsd-performance