vm.kmem_size for stability to avoid kernel panics?
Jeremy Chadwick
freebsd at jdc.parodius.com
Fri Sep 17 06:12:18 UTC 2010
On Thu, Sep 16, 2010 at 10:39:05PM -0700, Gil Vidals wrote:
> The ZFS Tuning guide says that no tuning may be necessary on servers with 2+
> GB of RAM.
>
> *"FreeBSD 7.2+ has improved kernel memory allocation strategy and no tuning
> may be necessary on systems with more than 2 GB of RAM."*
> However, is it advisable to put an upper limit for these two parameters to
> ensure stability and avoid kernel panics?
>
> vm.kmem_size
> vm.kmem_size_max
It depends entirely on what OS version -- and build date -- you're
using, in addition to architecture (i386 vs. amd64). Please provide
more information about your system.
There were changes to the underlying VM to extend vm.kmem_size_max's
limit, which got committed sometime during the 7.2-STABLE (I think)
cycle.
However, vm.kmem_size still needs to be adjusted on both RELENG_7 and
RELENG_8. You *do not* (and should not) need to adjust
vm.kmem_size_max.
Another ZFS-centric tunable you should adjust is vfs.zfs.arc_max -- but
again, the functionality of this tunable depends exactly on what OS
version and date of build you're using.
The functionality in vfs.zfs.arc_max was changed from being a "high
watermark" to a hard limit due to people continuing to experience "kmem
map too small" panics. I think I may have posted to the list long ago
about when this was changed; I don't remember the date off the top of my
head. I do know that for RELENG_8, vfs.zfs.arc_max is a hard limit.
Each person's hardware, environment, and workload is different, so your
tuning will vary.
This is the ZFS-related tuning bits we use on our amd64 RELENG_7 and
RELENG_8 systems which have 4GB physical RAM installed:
# Increase vm.kmem_size to allow for ZFS ARC to utilise more memory.
vm.kmem_size="4096M"
vfs.zfs.arc_max="3584M"
# Disable ZFS prefetching
# http://southbrain.com/south/2008/04/the-nightmare-comes-slowly-zfs.html
# Increases overall speed of ZFS, but when disk flushing/writes occur,
# system is less responsive (due to extreme disk I/O).
# NOTE: 8.0-RC1 disables this by default on systems <= 4GB RAM anyway
# NOTE: System has 8GB of RAM, so prefetch would be enabled by default.
vfs.zfs.prefetch_disable="1"
# Disable UMA (uma(9)) for ZFS; amd64 was moved to exclusively use UMA
# on 2010/05/24.
# http://lists.freebsd.org/pipermail/freebsd-stable/2010-June/057162.html
vfs.zfs.zio.use_uma="0"
# Decrease ZFS txg timeout value from 30 (default) to 5 seconds. This
# should increase throughput and decrease the "bursty" stalls that
# happen during immense I/O with ZFS.
# http://lists.freebsd.org/pipermail/freebsd-fs/2009-December/007343.html
# http://lists.freebsd.org/pipermail/freebsd-fs/2009-December/007355.html
vfs.zfs.txg.timeout="5"
--
| Jeremy Chadwick jdc at parodius.com |
| Parodius Networking http://www.parodius.com/ |
| UNIX Systems Administrator Mountain View, CA, USA |
| Making life hard for others since 1977. PGP: 4BD6C0CB |
More information about the freebsd-fs
mailing list