Dec 7, 2011

How to change the l2arc_write_max dynamically

ZFS sets the value of the l2arc_write_max to the each cache device of L2ARC only when you add it to a pool of ZFS or restart the OS. If you want to change the value dynamically, you should follow the following steps with the mdb.
  • Start the mdb with the root privilege.
    # mdb -kw
  • Print the list of the addresses of the actual write max for each device.
    > L2ARC_dev_list::walk list | ::print -a l2arc_dev_t l2ad_write
    30074670a00 l2ad_write = 0x800000
    300ebae8818 l2ad_write = 0x800000
    3014a4269b0 l2ad_write = 0x800000
    30164ae3be0 l2ad_write = 0x800000
  • Set a proper value to these addresses.
    > 0x30074670a00/Z c00000
    0x30074670a00: 0x800000 = 0xc00000
    > 0x300ebae8818/Z c00000
    0x300ebae8818: 0x800000 = 0xc00000
    > 3014a4269b0/Z c00000
    0x3014a4269b0: 0x800000 = 0xc00000
    > 30164ae3be0/Z c00000
    0x30164ae3be0: 0x800000 = 0xc00000
Changing the value dynamically may cause unexpected behavior. I don't recomend it though I have never experienced any problem.

No comments:

Post a Comment