]> granicus.if.org Git - zfs/commit
Expose max/min objs per slab and max slab size
authorAndrey Vesnovaty <andrey.vesnovaty@gmail.com>
Thu, 6 Feb 2014 10:08:46 +0000 (12:08 +0200)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Mon, 14 Apr 2014 16:42:04 +0000 (09:42 -0700)
commitbdfbe594a109933e72103bd720d2c6aa560dc400
tree3b352d62809bafea2ec6ffd9698ce4affaa4a65c
parent545e9ac00a813ed13d6b67c86d058c9048d78552
Expose max/min objs per slab and max slab size

By default maximal number of objects in slab can't exceed (16*2 - 1) and slab
size can't exceed 32M.
Today's high end servers having couple hundreds of RAM available for ARC may
run into a trouble with virtual memory because of the restriction mentioned
above.

Problem:
Reasons for very high number of virtual memory allocations:
* Real slab size very small relative to the size of the entire RAM
* Slabs allocated on virtual memory and fill entire ARC

The result is very high number of allocated virtual memory ranges (hundreds of
ranges). When virtual memory subsystem manages high number of ranges its
performance become so poor that it freezes from time to time.

Solution:
Number of objects per slab should be increased taking into account maximal
slab size which can also be increased if needed.

Signed-off-by: Andrey Vesnovaty <andrey.vesnovaty@gmail.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #337
module/spl/spl-kmem.c