Today I learned: How to limit ZFS memory usage on Proxmox.
The Proxmox documentation explains: > ZFS uses 50 % of the host memory for the Adaptive Replacement Cache (ARC) by default. Allocating enough memory for the ARC is crucial for IO performance, so reduce it with caution. As a general rule of thumb, allocate at least 2 GiB Base + 1 GiB/TiB-Storage. For example, if you have a pool with 8 TiB of available storage space then you should use 10 GiB of memory for the ARC.
So for me with 10 TiB usable storage this meant 10 GiB + 2 GiB memory for ZFS. My humble home server only has 32 GiB memory though. But sacrificing around well over one third of my available memory just felt not reasonable for a home setup.
I simply followed the documentations instructions, set the zfs_arc_max
value to a reasonable size in /etc/modprobe.d/zfs.conf
and rebooted.
# cat /etc/modprobe.d/zfs.conf
options zfs zfs_arc_max=8589934592
My Proxmox server is running smoothly for quite some time with the new settings, so I am happy with the compromise between optimal IO performance and memory efficiency.