11.7 iostat:I/O信息统计
11.7.1 命令详解
【命令星级】 ★★★★☆
【功能说明】
iostat是I/O statistics(输入/输出统计)的缩写,其主要功能是对系统的磁盘I/O操作进行监视。它的输出主要是显示磁盘读写操作的统计信息,同时也会给出CPU的使用情况。同vmstat命令一样,iostat命令也不能对某个进程进行深入分期,仅会对系统的整体情况进行分析。
【语法格式】
iostat [option] [delay [count]]
iostat [选项] [时间间隔[次数]]
说明:
1)在iostat命令及后面的选项里,每个元素之间都至少要有一个空格。
2)delay表示两次输出之间的间隔时间。
3)count表示按照delay指定的时间间隔统计的次数。
【选项说明】
表11-6针对该命令的参数选项进行了说明。
表11-6 iostat命令的参数选项及说明
11.7.2 使用范例
**范例11-19:**显示所有设备的负载情况。
[root@centos7 ~]# iostat #如果省略“时间间隔”和“次数”参数,则仅显示一次报告后就退出。
Linux 3.10.0-1127.19.1.el7.x86_64 (centos7) 10/31/2020 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.13 0.00 0.36 0.01 0.00 99.51
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.49 12.33 7.80 335127 211950
scd0 0.00 0.04 0.00 1028 0
以下是命令结果说明。
第1~2列中各列的含义具体如下。
- %user:用户进程消耗的CPU时间百分比。
- %nice:改变过优先级的进程占用的CPU时间百分比。
- %system:系统(内核)进程消耗的CPU时间百分比。
- %iowait:IO等待所占用的CPU时间百分比。
- %steal:虚拟机强制CPU等待的时间百分比。
- %idle:CPU处在空闲状态的时间百分比。
第3~4列中各列的含义如下。
- tips:表示该设备每秒的传输次数,“一次传输”的意思是“一次I/O请求”,多个逻辑请求可能会被合并为“一次I/O请求”,“一次传输”请求的大小是未知的。
- kB_read/s :表示每秒读取的数据块数。
- kB_wrtn/s:表示每秒写入的数据块数。
- kB_read:表示读取的所有块数。
- kB_wrtn:表示写入的所有块数。
**范例11-20:**定时显示所有信息。
[root@centos7 ~]# iostat 2 3 #每隔2秒刷新显示一次,共显示3次。
Linux 3.10.0-1127.19.1.el7.x86_64 (centos7) 10/31/2020 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.13 0.00 0.35 0.01 0.00 99.51
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.48 12.15 7.68 335135 212014
scd0 0.00 0.04 0.00 1028 0
avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 0.00 0.00 0.00 100.00
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.00 0.00 0.00 0 0
scd0 0.00 0.00 0.00 0 0
avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 0.00 0.00 0.00 100.00
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.00 0.00 0.00 0 0
scd0 0.00 0.00 0.00 0 0
**范例11-21:**只显示磁盘统计信息。
[root@centos7 ~]# iostat -d #选项-d只显示磁盘的统计信息。
Linux 3.10.0-1127.19.1.el7.x86_64 (centos7) 10/31/2020 _x86_64_ (1 CPU)
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.48 12.10 7.66 335135 212109
scd0 0.00 0.04 0.00 1028 0
[root@centos7 ~]# iostat -d -k #选项-k以KB为单位显示数据。
Linux 3.10.0-1127.19.1.el7.x86_64 (centos7) 10/31/2020 _x86_64_ (1 CPU)
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.48 12.10 7.66 335135 212110
scd0 0.00 0.04 0.00 1028 0
[root@centos7 ~]# iostat -d -m #选项-m以MB为单位显示数据。
Linux 3.10.0-1127.19.1.el7.x86_64 (centos7) 10/31/2020 _x86_64_ (1 CPU)
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 0.48 0.01 0.01 327 207
scd0 0.00 0.00 0.00 1 0
**范例11-22:**显示扩展信息。
[root@centos7 ~]# iostat -d -x -k #选项-x显示扩展信息。
Linux 3.10.0-1127.19.1.el7.x86_64 (centos7) 10/31/2020 _x86_64_ (1 CPU)
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.01 0.26 0.22 12.06 7.63 82.10 0.00 11.26 15.92 5.61 6.86 0.33
scd0 0.00 0.00 0.00 0.00 0.04 0.00 114.22 0.00 65.17 65.17 0.00 53.06 0.00
以下是命令结果说明。
- rrqm/s:每秒进行merge的读操作数目。
- wrqm/s:每秒进行merge的写操作书面。
- r/s:每秒完成的读I/O设备次数。
- w/s每秒完成的写I/O设备次数。
- rkB/s:每秒读入的千字节数。
- wkB/s:每秒写入的千字节数。
- avgrq-sz:设备平均每次进行I/O操作的数据大小(扇区)。
- avgqu-sz:平均I/O队列长度。
- await:设备平均每次I/O操作的等待时间(毫秒)。
- r_await:设备读I/O操作的等待时间(毫秒)。
- w_await:设备写I/O操作的等待时间(毫秒)。
- svctm:设备平均每次I/O操作的服务时间(毫秒)。
- %util:每秒钟用于I/O操作的百分比。
**范例11-23:**只查看CPU的统计信息。
[root@centos7 ~]# iostat -c #使用了-c选项只显示系统CPU的统计信息。
Linux 3.10.0-1127.19.1.el7.x86_64 (centos7) 10/31/2020 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.13 0.00 0.35 0.01 0.00 99.52
11.8 iotop:动态显示磁盘I/O统计信息
11.8.1 命令详解
【命令星级】 ★★★★☆
【功能说明】
iotop命令是一款实时监控磁盘I/O的工具,但必须以root用户的身份运行。使用iotop命令可以很方便地查看每个进程使用磁盘I/O的情况。
最小化安装系统一般是没有这个命令的,需要使用yum命令额外安装,安装命令如下:
yum -y install iotop
【语法格式】
iotop [option]
iotop [选项]
**说明:**在iotop命令及后面的选项里,每个元素之间都至少要有一个空格。
【选项说明】
表11-7针对该命令的参数选项进行了说明。
表11-7 iotop命令的参数选项及说明
11.8.2 使用范例
**范例11-24:**不接任何参数启动iotop命令。
[root@centos7 ~]# iotop
Total DISK READ : 0.00 B/s | Total DISK WRITE : 0.00 B/s
Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 0.00 B/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMM
2955 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.02 % [kw~:2]
1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % sys~ 22
2 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kt~dd]
4 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kw~0H]
6 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ks~/0]
7 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [mi~/0]
8 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rc~bh]
9 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rc~ed]
10 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [lr~in]
11 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [wa~/0]
524 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [xf~a1]
13 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kd~fs]
14 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [netns]
15 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kh~kd]
16 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [wr~ck]
17 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ki~yd]
18 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [bi~et]
19 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [bi~et]
20 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [bi~et]
21 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kb~kd]
22 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [md]
...
以下是命令结果的具体说明。
- Total DISK READ:总的磁盘读取速度。
- Total DISK WRITE:总的磁盘写入速度。
- TID:进程PID值。
- PRIO:优先级。
- USER:用户。
- DISK READ :磁盘读取速度。
- DISK WRITE :磁盘写入速度。
- SWAPIN:从swap分区读取数据占用的百分比。
- IO> :I/O占用的百分比。
- COMM:消耗I/O的进程名。