Date: Sat, 22 Oct 2011 11:51:59 +0200 From: Miroslav Lachman <000.fbsd@quip.cz> To: Doug Barton <dougb@FreeBSD.org> Cc: freebsd-fs@freebsd.org, Ivan Voras <ivoras@freebsd.org> Subject: Re: dirhash and dynamic memory allocation Message-ID: <4EA2923F.7060303@quip.cz> In-Reply-To: <4EA234D1.7000805@FreeBSD.org> References: <4E97FEDD.7060205@quip.cz> <j7938v$66s$1@dough.gmane.org> <4EA19203.5050503@quip.cz> <4EA2277B.5080306@FreeBSD.org> <20111022030403.GA176@icarus.home.lan> <4EA234D1.7000805@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Doug Barton wrote: > On 10/21/2011 20:04, Jeremy Chadwick wrote: >> On Fri, Oct 21, 2011 at 07:16:27PM -0700, Doug Barton wrote: > >>> Isn't that what vfs.ufs.dirhash_minsize is for? I think given that there >>> is a lot more memory in modern systems setting that higher by default is >>> probably a good idea. Or maybe I'm misunderstanding what that knob does? >> >> I believe the function of that sysctl is different. It's not the >> "minimum amount of dirhash memory to retain", it's: >> >> $ sysctl -d vfs.ufs.dirhash_minsize >> vfs.ufs.dirhash_minsize: minimum directory size in bytes for which to use hashed lookup > > Ah, silly me. I'm so used to 'sysctl -d' not working that I didn't even > try it this time. Thanks for setting me straight. sysctls are becoming a mess as new are added, but only few of them are good named or documented. Even if some have 'sysctl -d' description, the description is not helpfull for non-developer persons like me. And the second aspect is that sometimes there is two sysctl OID with slightly different naming scheme doing the same (or having same description) for example low_mem vs. lowmemcount: # sysctl -a | egrep 'low_?mem' kern.geom.journal.stats.low_mem: 46443 vfs.ufs.dirhash_lowmemcount: 46443 # sysctl -d {kern.geom.journal.stats.low_mem,vfs.ufs.dirhash_lowmemcount} kern.geom.journal.stats.low_mem: Number of times low_mem hook was called. vfs.ufs.dirhash_lowmemcount: number of times low memory hook called And the problem for non-developer person is, that this description brings more questions than it answers. "What condition is causing it?, What low mem hook is doing? What should I do with it?..." (I already know it, not from a documentation, but from discussions in mailinglists) FreeBSD is known to its good documentation, so it is sad that this important part of the system is lacking really good documentation. FreeBSD comes with not optimal default settings nor autotunes, so almost everybody needs to set something in loader.conf or sysctl.conf to achieve better performance. But it is hard without good sysctl documentation. I know there were some atempts in the past (GSoC project and http://wiki.freebsd.org/IdeasPage#Document_all_sysctls) but none of them was successful. Maybe it's time for stronger policy in committing new code to the tree - if something is adding new sysctl IOD, it must have 'sysctl -d' description and some documentation of its behavior in handbook or some wiki page - I don't know where is the right place to have all sysctls documented. (something like man rc.conf) Maybe wiki page with some tuning tips will be the best place, as more persons can edit it. ...I am sorry for being off-topic, this is really not related to my original dirhash problem. :) > In that case I agree with the OP that a knob for minimum setting would > be desirable. Miroslav Lachman
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4EA2923F.7060303>