====== Limit ZFS on Linux Memory Usage ======
echo "options zfs zfs_arc_max=1073741824" >> /etc/modprobe.d/zfs.conf
echo 1073741824 > /sys/module/zfs/parameters/zfs_arc_max
update-initramfs -u
1073741824 is 1 GiB. It is good to use at most 50 percent (which is the default) of the system memory for ZFS ARC to prevent performance shortage of the host.
===== Monitoring =====
arcstat.py is located in ''zfsutils-linux'' on Ubuntu.
$ apt-file search arcstat.py
zfsutils-linux: /usr/sbin/arcstat.py
# arcstat.py 1
time read miss miss% dmis dm% pmis pm% mmis mm% arcsz c
12:06:55 0 0 0 0 0 0 0 0 0 1005M 1024M
12:06:56 59 10 16 10 16 0 0 0 0 1005M 1024M
12:06:57 68 10 14 10 14 0 0 4 30 1005M 1024M
12:06:58 59 10 16 10 16 0 0 0 0 1005M 1024M
12:06:59 55 6 10 6 10 0 0 0 0 1005M 1024M
# arcstat.py -h
Usage: arcstat.py [-hvx] [-f fields] [-o file] [-s string] [interval [count]]
-h : Print this help message
-v : List all possible field headers and definitions
-x : Print extended stats
-f : Specify specific fields to print (see -v)
-o : Redirect output to the specified file
-s : Override default field separator with custom character or string
Examples:
arcstat.py -o /tmp/a.log 2 10
arcstat.py -s "," -o /tmp/a.log 2 10
arcstat.py -v
arcstat.py -f time,hit%,dh%,ph%,mh% 1
===== See Alsos =====
* https://pve.proxmox.com/wiki/ZFS_on_Linux
* https://www.solaris-cookbook.eu/linux/linux-ubuntu/debian-ubuntu-centos-zfs-on-linux-zfs-limit-arc-cache/
* http://fibrevillage.com/storage/169-zfs-arc-on-linux-how-to-set-and-monitor-on-linux
{{tag>zfs zfs-on-linux memory}}