Configurable ZFS Read and Write Throughput Limits
The Oracle Solaris 11.4 release provides the ability to limit a ZFS file system's reads and writes to disk. You can enable a read or write limit on a ZFS file system by setting the readlimit and writelimit properties, in units of bytes per second. Using these features allow you to optimize ZFS I/O resources in a multitenant environment.
The defaultwritelimit
and defaultreadlimit
properties are added to increase the manageability of a large number of ZFS file systems. If defaultwritelimit
and defaultreadlimit
properties are set, all file system descendants inherit the assigned value. If you apply the default read or write limit to ZFS file system, it is only applied to descendant file systems, and not to the file system itself. The read-only effectivereadlimit
and effectivewritelimit
properties are added to provide a view of what the effective limit is on a file system. The reported effective limit is the lowest data limit at any point between the parent and the indicated file system.
For example, you would set read and write limits as follows:
# zfs set writelimit=500mb rpool/apps/web # zfs set readlimit=200mb rpool/apps/logdata
The following example shows how to display read and write limits:
# zfs get -r writelimit,readlimit rpool/apps NAME PROPERTY VALUE SOURCE rpool/apps writelimit default default rpool/apps readlimit default default rpool/apps/logdata writelimit default default rpool/apps/logdata readlimit 200M local rpool/apps/web writelimit 500M local rpool/apps/web readlimit default default rpool/apps/web/tier1 writelimit default default rpool/apps/web/tier1 readlimit default default
You can display the effective write limit as follows:
# zfs get effectivewritelimit rpool/apps/web NAME PROPERTY VALUE SOURCE rpool/apps/web effectivewritelimit 500M local
For more information, see Managing ZFS File Systems in Oracle Solaris 11.4.
Read the entire article on the upcoming features in Oracle Solaris 11.4 (PDF).