Robin Gierse
Inline Skater

Today I learned

How to limit ZFS Memory Usage on Proxmox

2 min read

Today I learned: How to limit ZFS memory usage on Proxmox.

What was the problem?

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.

My solution

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

Wrapping up

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.