Linux使用iostat监测IO状态

xiaoxiao2021-02-28  9

Linux系统中通过iostat我们能查看到系统IO状态信息,从而确定IO性能是否存在瓶颈

命令安装
#Ubuntu安装命令 apt-get install -y sysstat #centos安装命令 yum install -y sysstat
命令使用
root@ubuntu:~# iostat --help Usage: iostat [ options ] [ <interval> [ <count> ] ] Options are: [ -c ] [ -d ] [ -h ] [ -k | -m ] [ -N ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ] [ -j { ID | LABEL | PATH | UUID | ... } ] [ [ -H ] -g <group_name> ] [ -p [ <device> [,...] | ALL ] ] [ <device> [...] | ALL ]
iostat 主要有三个操作箱,options 操作项,interval指定统计时间间隔,count总共输出次数
-c 参数,可以用来插卡部分cpu状态信息
root@ubuntu:~# iostat -c Linux 4.4.0-112-generic (ubuntu)      04/28/2018      _x86_64_        (2 CPU) avg-cpu:  %user   %nice %system %iowait  %steal   %idle            0.05    0.01    0.06    0.03    0.00   99.85
-k 参数,某些使用block为单位的列强制使用Kilobytes为单位
root@ubuntu:~# iostat -k 1 10 Linux 4.4.0-112-generic (ubuntu) 04/28/2018 _x86_64_ (2 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.05 0.01 0.06 0.03 0.00 99.85 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 0.13 0.97 6.84 7384588 52320688 dm-0 0.18 0.93 6.76 7095137 51752244 dm-1 0.02 0.02 0.07 187844 568444 avg-cpu: %user %nice %system %iowait %steal %idle 0.00 0.00 0.50 0.00 0.00 99.50 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 0.00 0.00 0.00 0 0 dm-0 0.00 0.00 0.00 0 0 dm-1 0.00 0.00 0.00 0 0
-d 参数,显示设备(磁盘)使用状态
root@ubuntu:~# iostat -d 1 3 Linux 4.4.0-112-generic (ubuntu) 04/28/2018 _x86_64_ (2 CPU) Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 0.13 0.96 6.84 7384588 52320728 dm-0 0.18 0.93 6.76 7095137 51752284 dm-1 0.02 0.02 0.07 187844 568444 输出列表示: tps:该设备每秒的传输次数“一次传输”意思是“一次I/O请求”。多个逻辑请求可能会被合并为“一次I/O请求”。“一次传输”请求的大小是未知的。 kB_read/s:每秒从设备(drive expressed)读取的数据量; kB_wrtn/s:每秒向设备(drive expressed)写入的数据量; kB_read:读取的总数据量;kB_wrtn:写入的总数量数据量;这些单位都为Kilobytes。
-x 参数,输出更多详细信息
root@ubuntu:~# iostat -x 1 2 Linux 4.4.0-112-generic (ubuntu)      04/28/2018      _x86_64_        (2 CPU) avg-cpu:  %user   %nice %system %iowait  %steal   %idle            0.05    0.01    0.06    0.03    0.00   99.85 Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util sda               0.00     0.08    0.04    0.10     0.96     6.84   116.13     0.00   17.07    5.22   21.95   3.64   0.05 dm-0              0.00     0.00    0.04    0.15     0.93     6.76    83.50     0.01   39.66    5.85   48.09   2.62   0.05 dm-1              0.00     0.00    0.01    0.02     0.02     0.07     8.05     0.01  226.25    4.61  297.48   0.57   0.00 解释一下 -x参数输出列意思 rrqm/s:每秒这个设备相关的读取请求有多少被Merge了 (当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge) wrqm/s:每秒这个设备相关的写入请求有多少被Merge了。 rsec/s:每秒读取的扇区数;wsec/:每秒写入的扇区数。 r/s:每秒向设备发出的读取请求的数量 w/s:每秒向设备发出的写入请求数; await:每一个IO请求的处理的平均时间(单位是毫秒)。 这里可以理解为IO的响应时间,一般地系统IO响应时间应该低于5ms,如果大于10ms就比较大了。 %util:在统计时间内所有处理IO时间,除以总共统计时间。 例如,如果统计间隔1秒,该设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的%util = 0.8/1 = 80%,所以该参数暗示了设备的繁忙程度。 一般地,如果该参数是100%表示设备已经接近满负荷运行了 (当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)

常见用法

iostat -d -k 1 10            #查看TPS和吞吐量信息iostat -d -x -k 1 10       #查看设备使用率(%util)、响应时间(await)iostat -c 1 10                #查看cpu状态
转载请注明原文地址: https://www.6miu.com/read-2350219.html

最新回复(0)