ZFSGuru Loader.conf + GUI Editor

Status
Not open for further replies.

ghenry22

Cadet
Joined
Jun 8, 2011
Messages
5
So double posting is not great, but I thought I would put this as a dedicated feature request item. It should be straight forward I would think and would add great value for tuning performance.

I would suggest incorporating the commented loader.conf that ZFSguru uses. By default all options are commented out but each has some explanation on what it affects, values you can choose and what it effects. I found it to be a great boost to Freenas performance by just tweaking a few options and having the commented config file makes it nice and clear.

Ideally would be to make it possible to modify these values directly through the webgui rather than dropping to CLI.

Here is a cut/paste of the loader.conf from ZFSGuru:

#
## ZFSguru advanced tuning
## note that editing loader.conf only works on USB or ZFS-on-root installs
#

## KERNEL MEMORY
#
# Do not exceed your RAM size! Note available RAM is lowered by 500MB when
# using the USB or LiveCD distribution. You can increase kernel memory up to
# 1GB less than your physical RAM.
#
# if you exceed the limits of kernel memory, you may get a panic like this:
# panic: kmem_malloc(131072): kmem_map too small: <totalkmem> total allocated
#
#vm.kmem_size="3g"
#vm.kmem_size_max="3g"


## ZFS tunables

# ARC limits
# tune these in according with vm.kmem_size setting; you can increase it
# up to the value of vm.kmem_size minus 1GB.
#
# note: kernel memory size needs to be larger than maximum ARC size (arc_max)
# note: zfs uses more memory than just the ARC; don't make the ARC too big
#
#vfs.zfs.arc_min="512m"
#vfs.zfs.arc_max="1g"

# ARC metadata limits
# increase to cache more metadata (recommended if you have enough RAM)
#vfs.zfs.arc_meta_limit="128m"

# ZFS prefetch disable
# setting this value to 0 will force prefetching to be used even when
# ZFS considers it undesirable if you have <= 4GiB RAM or running 32-bit
#vfs.zfs.prefetch_disable="0"

# ZFS transaction groups (txg)
# ZFS is not unlike a transactional database in the sense that it processes
# your data in transaction groups. The bigger the txg is, the more data it
# can hold but also the longer flushing transaction groups will take.
# experiment with these values to improve temporary 'lags' or 'hangs'
# override maximum txg size in bytes
#vfs.zfs.txg.write_limit_override="0"
# target number of seconds a txg will be synced (tune this!)
#vfs.zfs.txg.synctime="5"
# maximum number of seconds a txg will be synced (tune this!)
#vfs.zfs.txg.timeout="30"

# vdev cache settings
# should be safe to tune; but be careful about your memory limits
#vfs.zfs.vdev.cache.bshift="16"
#vfs.zfs.vdev.cache.size="10m"
#vfs.zfs.vdev.cache.max="16384"

# vdev pending requests
# this manages the minimum/maximum of outstanding I/Os on the vdevs
# this should be safe to tune; best setting depends on your disks
# ssds may prefer higher settings
#vfs.zfs.vdev.min_pending="4"
#vfs.zfs.vdev.max_pending="32"

# other vdev settings
# I/O requests are aggregated up to this size
#vfs.zfs.vdev.aggregation_limit="131072"
# exponential I/O issue ramp-up rate
#vfs.zfs.vdev.ramp_rate="2"
# used for calculating I/O request deadline
#vfs.zfs.vdev.time_shift="6"

# disable BIO flushes
# disables metadata sync mode and uses async I/O without flushes
# ONLY USE FOR PERFORMANCE TESTING
#vfs.zfs.cache_flush_disable="1"

# disable ZIL (ZFS Intent Log)
# warning: disabling can sometimes improve performance, but you can lose data
# that was recently written if a crash or power interruption occurs.
# ONLY USE FOR PERFORMANCE TESTING
#vfs.zfs.zil_disable="1"

## other tuning
kern.maxfiles="950000"

## mandatory kernel modules (REQUIRED)
zfs_load="YES"
#geom_uzip_load="YES"
#tmpfs_load="YES"

## recommended kernel modules
ahci_load="YES"
siis_load="YES"

## optional kernel modules
#geom_md_load="YES"
#nullfs_load="YES"
#unionfs_load="YES"

# end #
 
Status
Not open for further replies.
Top