On Tue, Aug 21, 2012 at 4:24 PM, Alan Cox <a...@rice.edu> wrote:
> On 8/20/2012 8:26 PM, Gezeala M. Bacuño II wrote:
>>
>> On Mon, Aug 20, 2012 at 9:07 AM, Gezeala M. Bacuño II <geze...@gmail.com>
>> wrote:
>>>
>>> On Mon, Aug 20, 2012 at 8:22 AM, Alan Cox <a...@rice.edu> wrote:
>>>>
>>>> On 08/18/2012 19:57, Gezeala M. Bacuño II wrote:
>>>>>
>>>>> On Sat, Aug 18, 2012 at 12:14 PM, Alan Cox<a...@rice.edu>  wrote:
>>>>>>
>>>>>> On 08/17/2012 17:08, Gezeala M. Bacuño II wrote:
>>>>>>>
>>>>>>> On Fri, Aug 17, 2012 at 1:58 PM, Alan Cox<a...@rice.edu>   wrote:
>>>>>>>>
>>>>>>>> vm.kmem_size controls the maximum size of the kernel's heap, i.e.,
>>>>>>>> the
>>>>>>>> region where the kernel's slab and malloc()-like memory allocators
>>>>>>>> obtain
>>>>>>>> their memory.  While this heap may occupy the largest portion of the
>>>>>>>> kernel's virtual address space, it cannot occupy the entirety of the
>>>>>>>> address
>>>>>>>> space.  There are other things that must be given space within the
>>>>>>>> kernel's
>>>>>>>> address space, for example, the file system buffer map.
>>>>>>>>
>>>>>>>> ZFS does not, however, use the regular file system buffer cache. The
>>>>>>>> ARC
>>>>>>>> takes its place, and the ARC abuses the kernel's heap like nothing
>>>>>>>> else.
>>>>>>>> So, if you are running a machine that only makes trivial use of a
>>>>>>>> non-ZFS
>>>>>>>> file system, like you boot from UFS, but store all of your data in
>>>>>>>> ZFS,
>>>>>>>> then
>>>>>>>> you can dramatically reduce the size of the buffer map via boot
>>>>>>>> loader
>>>>>>>> tuneables and proportionately increase vm.kmem_size.
>>>>>>>>
>>>>>>>> Any further increases in the kernel virtual address space size will,
>>>>>>>> however, require code changes.  Small changes, but changes
>>>>>>>> nonetheless.
>>>>>>>>
>>>>>>>> Alan
>>>>>>>>
>>> <<snip>>
>>>>>>
>>>>>> Your objective should be to reduce the value of "sysctl
>>>>>> vfs.maxbufspace".
>>>>>> You can do this by setting the loader.conf tuneable "kern.maxbcache"
>>>>>> to
>>>>>> the
>>>>>> desired value.
>>>>>>
>>>>>> What does your machine currently report for "sysctl vfs.maxbufspace"?
>>>>>>
>>>>> Here you go:
>>>>> vfs.maxbufspace: 54967025664
>>>>> kern.maxbcache: 0
>>>>
>>>>
>>>> Try setting kern.maxbcache to two billion and adding 50 billion to the
>>>> setting of vm.kmem_size{,_max}.
>>>>
>> 2 : 50 ==>> is this the ratio for further tuning
>> kern.maxbcache:vm.kmem_size? Is kern.maxbcache also in bytes?
>>
>
> No, this is not a ratio.  Yes, kern.maxbcache is in bytes. Basically, for
> every byte that you subtract from vfs.maxbufspace, through setting
> kern.maxbcache, you can add a byte to vm.kmem_size{,_max}.
>
> Alan
>

Great! Thanks. Are there other sysctls aside from vfs.bufspace that I
should monitor for vfs.maxbufspace usage? I just want to make sure
that vfs.maxbufspace is sufficient for our needs.
_______________________________________________
freebsd-performance@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-performance
To unsubscribe, send any mail to "freebsd-performance-unsubscr...@freebsd.org"

Reply via email to