Linux IO Real-time Monitoring iostat command details
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 10
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
Sda 39.29 21.14 1.44 441339807 29990031
Sda1 0.00 0.00 0.00 1623
Sda2 1.32 1.43 4.54 29834273
Sda3 6.30 0.85 24.95 17816289
Sda5 0.85 0.46 3.40 9543503
Sda6 0.00 0.00 0.00 550
Sda7 0.00 0.00 0.00 0
Sda8 0.00 0.00 0.00 406 0
Sda9 0.00 0.00 0.00 406 0
Sda10 60.68 18.35 71.43 383002263
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
Sda 327.55 5159.18 102.04 5056 100
Sda1 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 .). It means. Multiple logical requests may be merged. /S: the amount of data read from the device (drive expressed) per second; kB_wrtn/
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. This option 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
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 sectors read per second;
Wsec/: number of sectors written 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 average request sector size
Avgqu-sz is 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 ParametersIostat 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 usageIostat-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 analysisOstat-d-k 1 | grep sda10
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
Sda10 60.72 18.95 71.53 395637647
Sda10 299.02 4266.67 129.41 4352
Sda10 483.84 4589.90 4117.17 4544
Sda10 218.00 3360.00 100.00 3360
Sda10 546.00 8784.00 124.00 8784
Sda10 827.00 13232.00 136.00 13232
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.
This article permanently updates the link address: