iostat
Table of Contents
iostat reference
iostat -xmdz 1
# |||| +- repeat every 1 second
# |||+─ omit output for any devices for which there was no activity during the sample period
# ||+- display the device utilization report
# |+- display statistics in megabytes per second
# +- display extended statisticsDevice: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
xvdf 0.00 2934.00 0.00 2000.00 0.00 48.69 49.86 2.59 1.30 0.00 1.30 0.50 99.60
rrqm/s,wrqm/sread/write requests merged per second
r/s,w/s,rMB/s,wMB/sreads/writes (throughput) per second
avgrq-szAverage request size in sectors (512 bytes) In general if this number is below 16 (16 * 512 bytes = 8KB). If this number is low (<50), you are going to be IOPS limited. If it's high (>100), you are likely to be bandwidth limited.
avgqu-szAverage queue size. Indicates how many requests are queued waiting to be serviced. If
avgqu-szgets big (>30), your application is submitting more requests per secondthan the volume can handle.awaitAverage wait in milliseconds. The average amount of time the requests that were completed during this period waited from when they entered the queue to when they were serviced. This number is a combination of the queue length and the average service time. This is one of the most important metrics.
svctmService time in milliseconds. While
awaitcounts the whole wait time of requests,svctmcounts only the time consumed by device. As Linux doesn't measure the actual service time, sosvctmis just approximation. Consider await more importantly.%utilPercentage of CPU time during whchi I/O requests were issed to the device. High
%utildoesn't always say that there is an overload. If the device serves requests in parallel, this value can constantly be high.