The ZFS setting behind this performance question is zfs_arc_max, the cap on memory ZFS can use for its Adaptive Replacement Cache (ARC). Proxmox VE sets a default cap on newer installations, but that does not mean every host has the same value—or that raising the cap will improve a particular workload. Check the running value and available memory before changing it.
What the ZFS ARC limit controls
The ARC caches data in memory to help ZFS serve storage reads efficiently. zfs_arc_max sets the maximum size of that cache; it is a ceiling, not a command to reserve that amount of RAM. Proxmox cautions that adequate ARC memory matters for I/O performance, while also warning administrators to reduce it carefully.
As an Amazon Associate I earn from qualifying purchases.
The setting is distinct from ZFS compression. Compression is a dataset property affecting new blocks written after the property is set; it does not retroactively rewrite existing blocks. Proxmox recommends lz4 for low CPU overhead and notes that compression can sometimes improve I/O, depending on how compressible the data is. Proxmox VE Administration Guide: ZFS.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Know which default applies to your host
Proxmox says new installations starting with Proxmox VE 8.1 set the ARC limit to 10% of installed physical memory, with a maximum of 16 GiB. That description is specific to new installations; do not assume an older installation or an upgraded host has that value. Inspect the actual configuration and runtime value.
#1 Best Overall
The VE 9 beta installation guide also lists “ARC max size” among the advanced ZFS installation options. The installer option does not establish that every installation uses the same setting. Proxmox VE Administration Guide.
Decide whether a change is warranted
First identify the Proxmox VE release and whether the host was installed fresh or upgraded. Then compare the configured cap and actual ARC use with available host memory, guest memory pressure, and the storage workload. A low-looking cap alone does not establish that ARC is limiting performance, and increasing it can leave less memory for the host and guests.
Rank #2
- HP Proliant DL360 G9 4-Bay LFF Server | 2x E5-2695v4 2.10GHz 18-Core CPU (36-Cores Total)
- 256GB DDR4 RAM | 4x 4TB 7.2K SATA 3.5" HDD
- Smart Array P440ar w/ 2GB FBWC | 4x1Gbe NIC
- 2x 500W PSU | Windows Server 2019 Standard Evaluation
Proxmox gives a rule of thumb of 2 GiB base plus 1 GiB per TiB of available storage; its example for an 8 TiB pool is 10 GiB. These are vendor guidance figures, not a benchmark or guaranteed optimum. The available documentation does not establish the right value for an individual workload.
Inspect the current value
Check the runtime parameter and the module configuration before editing anything. The sysfs parameter reports the current boot’s value in bytes:
Rank #3
cat /sys/module/zfs/parameters/zfs_arc_max
To see whether a persistent module option is configured, inspect the ZFS module options file used by your system, commonly /etc/modprobe.d/zfs.conf. A configured value and the runtime value may differ until the system has been rebooted. Consult the administration guide for your installed release before editing configuration.
Apply a temporary cap
A runtime write changes the cap for the current boot only. Proxmox documents this example for a 10 GiB cap; the arithmetic produces a byte count:
Rank #4
echo "$[10 * 1024*1024*1024]" >/sys/module/zfs/parameters/zfs_arc_max
Do not treat 10 GiB as a recommendation for every machine. Choose a target based on the host’s memory headroom and observed workload, and keep a way to reverse the change if the host or guests become memory-constrained.
Make a cap persistent
For a persistent setting, Proxmox documents adding or changing a ZFS module option. This example sets an 8 GiB maximum, expressed in bytes:
Best Value
- POWERFUL OFFICE & LIGHT GAMING MINI PC --- The GMKtec NucBox G10 features the AMD Ryzen 5 3500U (4C/8T, up to 3.7GHz) with Radeon Vega 8 Graphics up to 1200MHz. Built on Zen+ 12nm architecture, it delivers 35% faster performance than Intel N150/N100 series chips, making it ideal for light gaming, video playback, home office, and multitasking workstations.
- HIGH-SPEED 16GB DUAL DDR4 + 512GB PCIe SSD --- Comes preinstalled with 16GB dual-channel DDR4 (2×8GB) and a 512GB M.2 PCIe 3.0 SSD for blazing-fast boot, load, and transfer speeds. Easily upgradeable up to 32GB RAM and 2×8TB SSDs with dual M.2 2280 PCIe 3.0 slots for unmatched storage flexibility.
- SMOOTH TRIPLE 4K@60Hz DISPLAY OUTPUT --- Supports triple-display setup via HDMI 2.1 TMDS, DisplayPort 1.4, and USB-C. The Radeon Vega 8 GPU handles 4K@60Hz video editing, office visuals, and casual design tasks smoothly. Ideal for financial trading, productivity dashboards, and multi-window workflows.
- 2.5GbE ULTRA-FAST NETWORKING + SERVER READY --- Equipped with a 2.5GbE RJ45 LAN port, the G10 offers up to 2500Mbps stable wired internet speed. Perfect for office work, media server setups, Pfsense, Untangle routers, or secure network appliances. No more bottlenecks in data-intensive environments.
- COMPACT SIZE, FULL I/O, NEXT-GEN WIRELESS --- Palm-sized mini desktop comes packed with dual USB 3.2 Gen1, USB 2.0, USB-C (Full-Function: PD/DP/Data), DisplayPort, HDMI, and 3.5mm audio jack. Stay connected with WiFi 5 + Bluetooth 5.2. Great for office desks, minimalist setups, or VESA mounting.
options zfs zfs_arc_max=8589934592
- Back up the existing module-options configuration and record its current value.
- Add or update the ZFS module option with the intended byte value, following the guide for your exact Proxmox VE release.
- If the root filesystem is ZFS, run
update-initramfs -u -k allafter changing the value. - Reboot to activate the persistent module option, then check the runtime parameter again.
Proxmox warns that a maximum at or below zfs_arc_min can be ignored unless the minimum is adjusted. The guide also gives 64 MiB as the minimum ARC value. Avoid setting the maximum at or below the configured minimum; verify the interaction in the documentation for your release.
What to do if performance does not improve
Changing a memory ceiling does not prove that the cache was the bottleneck. If the host still performs poorly, reassess memory pressure and the workload rather than repeatedly raising the cap. Keep ARC tuning separate from compression changes: compression has its own CPU and data-compressibility trade-offs, and changes affect new writes rather than old blocks.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




