I am trying to tweak my ZFS pool, but in order to do this I would like to know the current l2arc_max_write setting. I know the default is 8 MB/s, but I can't find the actual value.

I have tried to look it up in the mdb (zfs_params and arc), but the setting does not seem to show up there.

1 Answer 1


What you are looking for is the l2arc_write_max, not l2arc_max_write; same for the boost setting. SSH paste from a Nexenta box:

root@lead:/export/home/admin# echo l2arc_write_max/D | mdb -k
root@lead:/export/home/admin# echo l2arc_write_boost/D | mdb -k
l2arc_write_boost:              8388608

You can change them with echo l2arc_write_max/W0t#####, such as:

root@lead:/export/home/admin# echo l2arc_write_max/W0t16777216 | mdb -kw
l2arc_write_max:0x800000        =       0x1000000
root@lead:/export/home/admin# echo l2arc_write_max/D | mdb -k

Be careful modifying this - it is safe to say the default of 8 MB is conservative, but there's a reason the 'conservative' number is 8 MB and not 300 MB. You can cause yourself some performance headaches if you open the floodgates on this. Tune conservatively. Highest I've ever set this and felt confident about it not causing issues was 40 MB, on a single L2ARC device (if they'd had more, I might have opted for less).

  • Thanks alot! We are using SSD's for the L2 cache, which (theoretically) could write up to 520 MB/s, but setting the limit lower seems safer. I will give it a go with 40 MB.
    – Jeroen
    Sep 13, 2013 at 9:14
  • Tune it up slowly, looking for pain. It has been awhile since I last played with this, but as I recall the risk was that if the device couldn't eat the incoming flow quickly enough you pause all I/O or something equally horrendous (or at least, that's what I recall), so it is good to be conservative.
    – Nex7
    Sep 14, 2013 at 15:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.