Detailed explanation of Linux IO real-time monitoring iostat command

Introduction

iostat is mainly used to monitor the IO load of system devices. When iostat is run for the first time, it displays various statistical information since the system is started, and then running iostat will display the statistical information since the last time the command was run. The user can obtain the required statistical information by specifying the number and time of the statistics.

 

grammar

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 parameter -d indicates that the device (disk) usage status is displayed; -k some columns that use block as the unit are forced to use Kilobytes as the unit; 2 indicates that the data display is refreshed every 2 seconds.

The output is as follows

copy code
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 523
sda2 1.32 1.43 4.54 29834273 94827104
sda3 6.30 0.85 24.95 17816289 520725244
sda5 0.85 0.46 3.40 9543503 70970116
sda6 0.00 0.00 0.00 550 236
sda7 0.00 0.00 0.00 406 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 1490928140

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
copy code

The meaning of the output information

tps: The number of transfers per second that was issued to the device. (Indicate the number of transfers per second that were issued to the device.). "One transfer" means "one I/O request". Multiple logical requests may be combined into "one I/O request". The size of the "one transfer" 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. The total TPS of the disk at that time was 39.29, and the following is the TPS of each partition. (Because it is an instantaneous value, the total TPS is not strictly equal to the sum of the TPS of each partition)

 

Specify the monitored device name as sda, and the output of this command is exactly the same as the above command.

iostat -d sda 2

By default, all hard disk devices are monitored, and now only sda is specified. 

 

-x parameter

iostat also has a more commonly used option -x , which will be used to display extended data related to io.

iostat -d -x -k 1 10
Device:    rrqm/s wrqm/s   r/s   w/s  rsec/s  wsec/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sda 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.28
Device:    rrqm/s wrqm/s   r/s   w/s  rsec/s  wsec/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sda 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

copy code
rrqm/s: How many read requests related to this device are merged per second (when the system call needs to read data, VFS sends the request to each FS, if the FS finds that different read requests read the same Block data, FS will merge this request with Merge); wrqm/s: How many write requests related to this device are merged per second.

rsec/s: the number of sectors read per second;
wsec/: The 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 requested sector size
avgqu-sz is the average request queue length. There is no doubt that the shorter the queue length, the better.    
await: The average processing time of each IO request (in microseconds and milliseconds). This can be understood as the IO response time. Generally, the system IO response time should be less than 5ms, and if it is greater than 10ms, it will be relatively large.
         This time includes the queue time and service time. That is to say, in general, await is greater than svctm. problem.
svctm represents the average service time (in milliseconds) per device I/O operation. If the value of svctm is close to await, it means that there is almost no I/O waiting, and the disk performance is good. slow down. 
%util: All processing IO time in the statistical time, divided by the total statistical time. For example, if the statistics interval is 1 second, the device is processing IO for 0.8 seconds and idle for 0.2 seconds, then the device's %util = 0.8/1 = 80%, so this parameter implies how busy the device is
. In general, if this parameter is 100%, it means that the device is running at full capacity (of course, if it is multi-disk, even if %util is 100%, because of the concurrency capability of the disk, the disk usage may not be the bottleneck).
copy code

 

-c parameter

iostat can also be used to get some cpu status values:

iostat -c 1 10
avg-cpu: %user %nice %sys %iowait %idle
1.98 0.00 0.35 11.45 86.22
avg-cpu: %user %nice %sys %iowait %idle
1.62 0.00 0.25 34.46 63.67

 

Common usage

iostat -d -k 1 10 #View TPS and throughput information (disk read and write speed in KB)
iostat -d -m 2 #View TPS and throughput information (disk read and write speed in MB)
iostat -d -x -k 1 10 #View device usage (%util), response time (await) iostat -c 1 10 #View cpu status

 

 

Case Analysis

copy code
ostat -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 1493241908
sda10 299.02 4266.67 129.41 4352 132
sda10 483.84 4589.90 4117.17 4544 4076
sda10 218.00 3360.00 100.00 3360 100
sda10 546.00 8784.00 124.00 8784 124
sda10 827.00 13232.00 136.00 13232 136
copy code

As seen above, the average number of disk transfers per second is about 400; disk reads are about 5MB per second and writes are about 1MB.

 

iostat -d -x -k 1
Device:    rrqm/s wrqm/s   r/s   w/s  rsec/s  wsec/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sda 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.29
sda 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.25
sda 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

It can be seen that the average response time of the disk is <5ms, and the disk usage is >80. The disk is responding normally, but is already busy.

 

Reprinted from: http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858810.html

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324753239&siteId=291194637
Recommended