Did you know  45Drives offers free  public and private  webinars ? Click here to learn more  & register! Build & Price

KB450086 – Setting ZFS on Linux ARC Limit

You are here:


  • ZFS on Linux defaults to use only 50% of available RAM in the system.
  • This should be bumped up to 90% in a sole ZFS server, and 80% if other tasks (non ZFS) are running as well.
  • Here is a website to convert bytes to gigabytes, as the inputted value needs to be in bytes.


  • Linux Server with ZFS 0.8.3 Installed


  • To check the amount of RAM dedicated to the ARC limit currently run the following command, c_min and c_max are the min and max values set for the ARC limit.
cat /proc/spl/kstat/zfs/arcstats |grep c_
  • Create a ZFS conf file.
vim /etc/modprobe.d/zfs.conf
  • Add the following options to the zfs.conf, change the values depending on the use case/amount of RAM in the system.
options zfs zfs_arc_min=[33%*RAM]
options zfs zfs_arc_max=[90%*RAM]
  • The above command should be done in byte size, if we had 128GB of RAM in our server, it would look like this.
options zfs zfs_arc_min=45097156608
options zfs zfs_arc_max=123480309760
  • Once that is done, you must run the following command to generate a new initramfs image.
sudo update-initramfs -u -k all
  • Make sure to reboot the system for the changes to take effect


  • To verify the limits were set, after the reboot run the original command to confirm the values have changed.
cat /proc/spl/kstat/zfs/arcstats |grep c_
  • Or you could run the following command to see as well.
cat /sys/module/zfs/parameters/zfs_arc_min
cat /sys/module/zfs/parameters/zfs_arc_max


  • If you want to set the value to a specific amount of any percentage of the ram change the max value set.
Was this article helpful?
Dislike 1
Views: 853
Unboxing Racking Storage Drives Cable Setup Power UPS Sizing Remote Access