Detailed explanation of iostat commands for real-time IO monitoring in CentOS
Introduction
Iostat is mainly used to monitor the IO load of system devices. iostat displays the statistics from the start of the system when it is run for the first time. After iostat is run, statistics from the last run of the command are displayed. You can specify the number and time of statistics to obtain the required statistics.
Syntax
iostat [ -c ] [ -d ] [ -h ] [ -N ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -z ] [ device [...] | ALL ] [ -p [ device [,...] | ALL ] ] [ interval [ count ] ]
Getting started
iostat -d -k 2
The-d parameter indicates that the Usage Status of the device (Disk) is displayed. The-k parameter indicates that Kilobytes is used as the unit of block usage, and 2 indicates that the data is refreshed every 2 seconds.
Output:
iostat -d -k 1 10Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtnsda 39.29 21.14 1.44 441339807 29990031sda1 0.00 0.00 0.00 1623 523sda2 1.32 1.43 4.54 29834273 94827104sda3 6.30 0.85 24.95 17816289 520725244sda5 0.85 0.46 3.40 9543503 70970116sda6 0.00 0.00 0.00 550 236sda7 0.00 0.00 0.00 406 0sda8 0.00 0.00 0.00 406 0sda9 0.00 0.00 0.00 406 0sda10 60.68 18.35 71.43 383002263 1490928140Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtnsda 327.55 5159.18 102.04 5056 100sda1 0.00 0.00 0.00 0 0
Significance of output information
Tps: the number of transmissions per second (Indicate the number of transfers per second that were issued to the device .). "One transmission" means "one I/O Request ". Multiple logical requests may be merged into "one I/O Request ". The size of the "one-time transmission" request is unknown. KB_read/s: the amount of data read from the device (drive expressed) per second; kB_wrtn/s: the amount of data written to the device (drive expressed) per second; kB_read: the total amount of data read; kB_wrtn: the total amount of data written. These units are Kilobytes.
In the above example, we can see the statistics of the disk sda and its various partitions. At that time, the total TPS of the disk is 39.29. below is the TPS of each partition. (Because it is an instantaneous value, the total TPS is not exactly equal to the total TPS of each partition)
Specify the monitored device name as sda. The output result of this command is identical to that of the preceding command.
iostat -d sda 2
By default, all hard disk devices are monitored. Currently, only sda is monitored.
-X Parameters
Iostat also has a common option-x, which is used to display io-related extended data.
iostat -d -x -k 1 10Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %utilsda 1.56 28.31 7.80 31.49 42.51 2.92 21.26 1.46 1.16 0.03 0.79 2.62 10.28Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %utilsda 2.00 20.00 381.00 7.00 12320.00 216.00 6160.00 108.00 32.31 1.75 4.50 2.17 84.20
Meaning of output information
Rrqm/s: the number of read requests related to this device per second is Merge (when the system calls a request to read data, VFS sends the request to each FS, if FS finds that different read requests read data of the same Block, FS merges the request with Merge); wrqm/s: the number of write requests related to this device per second is Merge. Rsec/s: Number of read sectors per second; wsec/: Number of write sectors per second. RKB/s: The number of read requests that were issued to the device per second; wKB/s: The number of write requests that were issued to the device per second; avgrq-sz: avgqu-sz indicates the length of the average request queue. Undoubtedly, the shorter the queue length, the better. Await: Average time (in milliseconds) for processing each IO request ). It can be understood as the IO response time. Generally, the system IO response time should be less than 5 ms. If it is greater than 10 ms, it will be relatively large. This time includes the queue time and service time. That is to say, in general, await is larger than svctm, and the smaller the difference, the shorter the queue time, and the larger the difference, the longer the queue time, it indicates a problem with the system. Svctm indicates the average service time (in milliseconds) for each device I/O operation ). If the svctm value is very close to await, it indicates that there is almost no I/O wait, and the disk performance is good. If the await value is much higher than the svctm value, the I/O queue waits too long, and applications running on the system will slow down. % Util: All IO processing time within the statistical time, divided by the total statistical time. For example, if the statistical interval is 1 second, the device processes IO for 0.8 seconds, and the device is idle for 0.2 seconds, % util = 0.8/1 = 80%, therefore, this parameter implies the degree to which the device is busy. Generally, if this parameter is set to 100%, it indicates that the device is nearly running at full capacity (of course, if it is a multi-disk, even if % util is 100%, because of the concurrency of the disk, so the disk usage may not be a bottleneck ).
-C Parameters
Iostat can also be used to obtain the status values of some CPUs:
iostat -c 1 10avg-cpu: %user %nice %sys %iowait %idle1.98 0.00 0.35 11.45 86.22avg-cpu: %user %nice %sys %iowait %idle1.62 0.00 0.25 34.46 63.67
Common usage
Iostat-d-k 1 10 # view TPS and throughput information (disk read/write speed in KB) iostat-d-m 2 # view TPS and throughput information (disk read/write speed in MB) iostat-d-x-k 1 10 # view device usage (% util), response time (await) iostat-c 1 10 # view cpu status
Instance analysis
ostat -d -k 1 |grep sda10Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtnsda10 60.72 18.95 71.53 395637647 1493241908sda10 299.02 4266.67 129.41 4352 132sda10 483.84 4589.90 4117.17 4544 4076sda10 218.00 3360.00 100.00 3360 100sda10 546.00 8784.00 124.00 8784 124sda10 827.00 13232.00 136.00 13232 136
As shown above, the average number of disk transfers per second is about 400; the disk reads about 5 MB per second, and writes about 1 MB.
iostat -d -x -k 1Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %utilsda 1.56 28.31 7.84 31.50 43.65 3.16 21.82 1.58 1.19 0.03 0.80 2.61 10.29sda 1.98 24.75 419.80 6.93 13465.35 253.47 6732.67 126.73 32.15 2.00 4.70 2.00 85.25sda 3.06 41.84 444.90 54.08 14204.08 2048.98 7102.04 1024.49 32.57 2.10 4.21 1.85 92.24
The average response time of the disk is <5 ms, and the disk usage is> 80. The disk response is normal, but it is busy.