Also seeing 2 x quad-core system slower that 2 x dual core
Oliver Fromme
olli at lurza.secnetix.de
Tue Dec 11 04:59:09 PST 2007
Steven Hartland wrote:
> sysctl -a |grep dirhash
>
> Check vfs.ufs.dirhash_mem is not close to vfs.ufs.dirhash_maxmem if it is
> and only most used boxes this seems to be the case increase maxmem.
>
> Seems this could either do with an auto tune option or a larger max by
> default in today's day and age.
I think it would make sense to tie it to the maxusers value
(which in turn depends on the amount of RAM, by default).
For example, setting dirhash_maxmem to maxusers/32 MB with
a lower limit of 2 MB seems reasonable. By default, the
maximum of the autotuned maxuers value is 384, so the auto-
tuned value of dirhash_maxmem would be between 2 and 12 MB,
depending on the amount of RAM. Of course the admin could
still adjust it manually if required.
I.e. something like this:
--- ufs_dirhash.c.orig 2005-10-31 16:41:28.000000000 +0100
+++ ufs_dirhash.c 2007-12-11 13:56:05.000000000 +0100
@@ -1074,6 +1074,9 @@
void
ufsdirhash_init()
{
+ ufs_dirhashmaxmem = maxusers * (1024 * 1024 / 32);
+ if (ufs_dirhashmaxmem < 2 * 1024 * 1024)
+ ufs_dirhashmaxmem = 2 * 1024 * 1024;
ufsdirhash_zone = uma_zcreate("DIRHASH", DH_NBLKOFF * sizeof(doff_t),
NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
mtx_init(&ufsdirhash_mtx, "dirhash list", NULL, MTX_DEF);
I haven't actually tried that, though, but the patch is
trivial enough so there shouldn't be too many bugs.
Best regards
Oliver
--
Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing b. M.
Handelsregister: Registergericht Muenchen, HRA 74606, Geschäftsfuehrung:
secnetix Verwaltungsgesellsch. mbH, Handelsregister: Registergericht Mün-
chen, HRB 125758, Geschäftsführer: Maik Bachmann, Olaf Erb, Ralf Gebhart
FreeBSD-Dienstleistungen, -Produkte und mehr: http://www.secnetix.de/bsd
We're sysadmins. To us, data is a protocol-overhead.
More information about the freebsd-stable
mailing list