Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 16 Aug 2012 20:15:48 -0700
From:      Marie Bacuno II <gezeala@gmail.com>
To:        Garrett Cooper <yanegomi@gmail.com>
Cc:        "freebsd-performance@freebsd.org" <freebsd-performance@freebsd.org>
Subject:   Re: vm.kmem_size_max and vm.kmem_size capped at 329853485875 (~307GB)
Message-ID:  <B74BE4AB-AB67-45BD-BFC3-9AE33A85751C@gmail.com>
In-Reply-To: <CAGH67wTNfW45pgJ_%2BVn_sX%2BP9M5B5wzPT9270dRmWjYF6KerrA@mail.gmail.com>
References:  <CAJKO3mU8bfn=jmWNSpvAXOR1AWyAAM0Sio1D1PnOYg8P59V9cg@mail.gmail.com> <CAGH67wS=jue7%2B92jSCyaydOLHC=hPwtndV64FVtC7nhDsPvFng@mail.gmail.com> <CAGH67wTNfW45pgJ_%2BVn_sX%2BP9M5B5wzPT9270dRmWjYF6KerrA@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help

On Aug 16, 2012, at 18:47, Garrett Cooper <yanegomi@gmail.com> wrote:

> On Thu, Aug 16, 2012 at 6:44 PM, Garrett Cooper <yanegomi@gmail.com> wrote=
:
>> On Thu, Aug 16, 2012 at 5:46 PM, Gezeala M. Bacu=C3=B1o II <gezeala@gmail=
.com> wrote:
>>> Hello fellow listers,
>>>=20
>>> On a server with 512GB RAM it appears that vm.kmem_size_max is not
>>> being auto-tuned to use >329853485875 (~307GB).
>>>=20
>>> On this machine vm.kmem_size is equal to vm.kmem_size_max
>>>=20
>>> # from sysctl
>>> vm.kmem_size_max: 329853485875
>>> vm.kmem_size: 329853485875
>>>=20
>>> On a machine with 1GB of RAM, I have successfully set vm.kmem_size_max
>>> to 330GB and vm.kmem_size automatically adjusts to 1GB even if I
>>> manually set it in /boot/loader.conf.
>>>=20
>>> But on the machine with 512GB of RAM it just resets. For the machine
>>> to boot, we need to go to the loader prompt and issue:
>>>=20
>>> OK set vm.kmem_size_max=3D"300G"
>>> OK boot
>>>=20
>>> On all PCBSD (8,9) or FreeBSD (8.1,8.2,9) machines we have,
>>> vm.kmem_size_max is always set to 329853485875.
>>>=20
>>> How can I increase vm.kmem_size_max to use at least 500GB? And how is
>>> 329853485875 determined (formula)? I need to increase vm.kmem_size_max
>>> and vm.kmem_size so I can set vfs.zfs.arc_max (ZFS ARC) to use say
>>> 490GB.
>>>=20
>>> I'm browsing thru the source code at
>>> http://fxr.watson.org/fxr/search?v=3DFREEBSD9&string=3Dvm.kmem_size_max
>>> and I'm still trying to make sense of how vm.kmem_size_max is
>>> computed.
>>>=20
>>> I have posted the same topic on forums.freebsd.org but I'm not getting
>>> any recommendations.
>>>=20
>>> Please see the link for additional details:
>>> http://forums.freebsd.org/showthread.php?t=3D33977
>>=20
>> Have you tried defining VM_KMEM_SIZE_MAX to your target value?
>>=20
>> Its architecture specific BTW... see
>> sys/<architecture>/include/vmparam.h -- look for `VM_KMEM_SIZE_MAX`.
>=20
> Also, it's a tunable, not a sysctl... so you need to set the value in
> /boot/loader.conf .
> -Garrett

Thanks for the quick reply.

Yes, had it set on /boot/loader.conf and by trial and error on the loader pr=
ompt.

We were able to bump it to 400G successfully. Tried 500G and 450G and the ma=
chine just spews out garbage in the screen.

The latest output from "zfs-stats -a" with vm.kmem_size_max=3D"400G" is in t=
he forum: http://forums.freebsd.org/showthread.php?t=3D33977

About the code, I am looking into amd64 arch. Still checking the values of t=
he variables.. Can't just retrieve them using getconf. If you can point me t=
o a doxygen like documentation appreciate it a lot.

Where does the constant value 329853485875 came from?

Thanks!



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?B74BE4AB-AB67-45BD-BFC3-9AE33A85751C>