On Wed, May 27, 2009 at 01:12:38PM +0200, Roman Divacky wrote:
On Wed, May 27, 2009 at 12:36:49PM +0200, Nick Barkas wrote:
Some time during the next week or so, I plan on committing the attached
patch. It adds a vm_lowmem event handler to the dirhash code in UFS2 so
that dirhashes will be deleted when the system is low on memory. This
allows one to increase the maximum amount of memory available for
dirhash on machines that have memory to spare (via the
vfs.ufs.dirhash_maxmem sysctl), and hopefully just improving behaviour
in low memory situations. I worked on this last year for the summer of
code with David Malone as my mentor.
cool! do you have any performance numbers? graphs? :) what value do you recommend
for the dirhash_maxmem sysctl?
Oh yes, I have many graphs: http://wiki.freebsd.org/DirhashDynamicMemory
When I ran those tests a few months ago, I used 64MB for dirhash_maxmem
on a system with 1GB of memory. I have not tried other amounts of memory
besides that, at least that I can recall, so please let me know what you
find if you experiment with other values. Performance improvements and
sometimes degradations changed depending on the type of work load, and
the results on 7.x were also sometimes quite different from -current.
I feel that the tests I did were pretty artificial though, so it would
be great to hear about any results found with more realistic testing.