Question about Default ZFS ARC Settings: Why are they like that?

Sep 1, 2022
175
26
28
40
Hello. I was reading the Wiki, and noticed this. https://pve.proxmox.com/wiki/ZFS_on_Linux#sysadmin_zfs_limit_memory_usage

Limit ZFS Memory Usage​


ZFS uses 50 % of the host memory for the Adaptive ReplacementCache (ARC) by default. For new installations starting with Proxmox VE 8.1, the ARC usage limit will be set to 10 % of the installed physical memory, clamped to a maximum of 16 GiB. This value is written to /etc/modprobe.d/zfs.conf.

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 + 1GiB/TiB-Storage. For example, if you have a pool with 8 TiB of availablestorage space then you should use 10 GiB of memory for the ARC.

ZFS also enforces a minimum value of 64 MiB.

Given the importance of ARC to I/O, why is it capped at 10 percent an clamped to 16 GiB? ZFS, left to its own devices, will be far more aggressive than this in using RAM for ARC.

Not trying to argue this is wrong, but it's not the way ZFS works on, say, TrueNAS Core or any other BSD system, and I'd like to learn why it's like this.

Thanks!
 
Given the importance of ARC to I/O, why is it capped at 10 percent an clamped to 16 GiB?
because nowadays most systems has 64GB/128GB RAM, 50% is little bit overkill, moreover PVE is virtualization system not a file server.
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!