(originally published on 22.03.2019, reviewed/rewritten on 30.03.2025, tested on Oracle Solaris 11.4 SRU 79)
In environments with workloads competing for the same resources (like using disk space on the same array) it can be useful to limit the ability of an application to flood the infrastructure until saturation. With Solaris 11.4 ZFS got the ability to configure bandwidth limits for read and write.
root@testbed:/test/limitedbandwidth# zfs set writelimit=20m rpool/limitedbandwidth
root@testbed:/test/limitedbandwidth# time mkfile 2g /rpool/limitedbandwidth/testfile
real 1m41,410s
user 0m0,083s
sys 0m1,199s
Just to check if it’s not just my notebook limiting it, i’m now significantly increasing the allocated bandwidth.
root@testbed:/test/limitedbandwidth# zfs set writelimit=200m rpool/limitedbandwidth
root@testbed:/test/limitedbandwidth# time mkfile 2g /rpool/limitedbandwidth/testfile
real 0m9,247s
user 0m0,023s
sys 0m0,411s