ioztat
ioztat is a storage load analysis tool for OpenZFS. It provides iostat-like statistics at an individual dataset/zvol level.
The statistics offered are read and write operations per second, read and write throughput per second, and the average size (in kilobytes) of read and write operations issued in the current reporting interval. Viewing these statistics at the individual dataset level allows system administrators to identify storage "hot spots" in larger multi-tenant systems--particularly those with many VMs or containers operating essentially independent workloads.
This sample output shows activity which has taken place in the most recent second, on a the ssd
zpool of a ZFS virtualization host:
root@redacted-prod0:~# ioztat -y -c1 ssd
dataset w/s wMB/s r/s rMB/s wareq-sz rareq-sz
ssd 0.00 0.00 0.00 0.00 0.00 0.00
images 0.00 0.00 0.00 0.00 0.00 0.00
DC1 17.96 0.10 3.99 0.05 5.66 12.29
DC2 21.95 0.14 0.00 0.00 6.59 0.00
QB 2.00 0.01 0.00 0.00 7.17 0.00
SAP-TC 2.99 0.02 0.00 0.00 6.83 0.00
SAP4-WIN2019 2.99 0.05 0.00 0.00 17.07 0.00
nagios 0.00 0.00 0.00 0.00 0.00 0.00
qemu 0.00 0.00 0.00 0.00 0.00 0.00
autostart 0.00 0.00 0.00 0.00 0.00 0.00
iso 0.00 0.00 0.00 0.00 0.00 0.00
unsnapped 0.00 0.00 0.00 0.00 0.00 0.00
rp9 0.00 0.00 0.00 0.00 0.00 0.00
For the most part, ioztat
behaves the same way that the system standard iostat
tool does, with similar arguments.
usage: ioztat [-h] [-s SORT] [-i INTERVAL] [-c COUNT] [-y] [-b]
pool [pool ...]
iostat for ZFS datasets
positional arguments:
pool ZFS pool
optional arguments:
-h, --help show this help message and exit
-s SORT Sort by: name / wps / wMBps / rps / rMBps
-i INTERVAL Time between each report
-c COUNT Number of reports generated
-y Skip the initial "summary" report
-b Use binary (power-of-two) prefixes
The only required argument is the name of at least one zpool to monitor. Without any other arguments, ioztat
first prints a summary record showing activity per dataset since the most recent system boot, then prints a new record showing the most recent activity once per second. The -i
argument can be used to change the report interval, and the -c
argument can be used to limit ioztat
to a certain number of intervals before exiting.
For those who wish a continually-updated, easy to read summary of pool activity, watch -n1 ioztat poolname -c1 -y
will suit nicely.