Technical

Lower ZFS ARC Max Size Proxmox: The modprobe.d Edit That Sticks

Lower ZFS ARC Max Size Proxmox: The modprobe.d Edit That Sticks

Lower ZFS ARC max size Proxmox by setting zfs_arc_max in /etc/modprobe.d/zfs.conf. Then run update-initramfs -u and reboot. That’s the whole fix — but the reboot part is where people get lost.

Close-up of a colorful motherboard showcasing intricate circuitry and glowing neon elements.

Why bother

ZFS eats RAM. By default it’ll take up to half your system memory for ARC, which is fine on a dedicated NAS but dumb on a Proxmox host running VMs and LXC containers. You want that RAM for guests, not for caching a disk that’s already fast.

The edit

Create or edit /etc/modprobe.d/zfs.conf:

options zfs zfs_arc_max=8589934592

That’s 8 GiB. Change the number to whatever you want in bytes. Some people use 4 GiB (4294967296) or 16 GiB (17179869184). I’d go lower than you think — ZFS still works fine with a small ARC, it just caches less.

High-angle view of a vintage AMD motherboard showcasing PCI and AGP slots.

Make it stick

Here’s the part generic ZFS docs skip: on Proxmox you have to update the initramfs or the setting won’t survive a reboot.

update-initramfs -u

Then reboot. Yes, reboot. You can try unloading the module and reloading it, but that’s a pain with ZFS pools mounted. Just reboot the host.

Verify

After reboot, check the current limit:

cat /sys/module/zfs/parameters/zfs_arc_max

It should show your number. Or run arc_summary and look at the “ARC size” section. If it still shows the old value, you forgot the initramfs step.

My take

Don’t overthink this. Set a reasonable cap, update initramfs, reboot. If you’re running Proxmox with ZFS and seeing high memory usage, this is the first thing to do. It’s also worth checking if you even need ZFS — for a lot of homelab setups, ext4 or XFS on LVM is simpler and leaves more RAM for VMs. But if you want snapshots and replication, ZFS is great; just cap the ARC.

And if you’re doing live migrations with ZFS, watch the memory dirty rate — it can slow things down more than the network. See Live Migrations Get Slower Over Time.

Leave a comment

Comments are reviewed before they appear. Your email is never published.