一、命令简介
iostat命令主要用于输出磁盘IO和CPU的统计信息。iostat首次运行时显示自系统启动开始的各项统计信息,之后运行iostat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。iostat命令通过观察设备相对于其平均传输速率处于活动状态的时间来监控系统输入/输出设备负载。iostat命令生成可用于更改系统配置的报告,以更好地平衡物理磁盘之间的输入/输出负载。centos7默认未安装此命令,此命令包含在软件包sysstat中。
如果%iowait的值过高,表示硬盘存在I/O瓶颈,%idle值高,表示CPU较空闲,如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量。%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU。
如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;如果 await 远大于 svctm,说明I/O 队列太长,io响应太慢,则需要进行必要优化。如果avgqu-sz比较大,也表示有当量io在等待。
二、使用示例
1、安装命令
[root@s141 ~]# yum install -y sysstat
2、获取命令帮助
[root@s141 ~]# man iostat
3、查看命令版本
[root@s141 ~]# iostat -V
sysstat version 10.1.5
© Sebastien Godard (sysstat orange.fr)
4、显示所有设备负载情况
[root@s141 ~]# iostat
5、间隔2秒查看3次
[root@s141 ~]# iostat 2 3
6、间隔3秒显示一次磁盘信息
[root@s141 ~]# iostat -d 3
7、间隔5秒显示sda磁盘的详细信息
[root@s141 ~]# iostat -x -m sda 5
8、显示磁盘及其分区的状态信息
[root@s141 ~]# iostat -p
9、报告每秒向终端读取和写入的字符数
[root@s141 ~]# iostat -t
10、间隔3秒显示2次CPU信息
[root@s101 ~]# iostat -c 3 2
三、使用语法及参数说明
1、使用语法
用法:iostat [ options ] [ <interval> [ <count> ] ]
2、参数说明
参数 | 参数选项 |
-c | 显示CPU使用情况 |
-d | 显示磁盘使用情况 |
-N | 显示磁盘阵列(LVM) 信息 |
-n | 显示NFS 使用情况 |
-k | 以 KB 为单位显示 |
-m | 以 M 为单位显示 |
-t | 报告每秒向终端读取和写入的字符数和CPU的信息 |
-V | 显示版本信息 |
-x | 显示详细信息 |
-p | [磁盘] 显示磁盘和分区的情况 |
-h | 以方便人阅读的形式显示磁盘利用率 |
-y | 如果以给定的间隔显示多个记录,则忽略自系统引导以来的第一个统计报告 |
-z | 告诉iostat忽略采样期间没有活动的任何设备的输出 |
3、输出项说明
- avg-cpu: 总体cpu使用情况统计信息,对于多核cpu,这里为所有cpu的平均值。重点关注iowait值,表示CPU用于等待io请求的完成时间。
- Device: 各磁盘设备的IO统计信息。
4、CPU属性值列说明
列 | 列说明 |
%user | CPU处在用户模式下的时间百分比。 |
%nice | CPU处在带NICE值的用户模式下的时间百分比。 |
%system | CPU处在系统模式下的时间百分比。 |
%iowait | CPU等待输入输出完成时间的百分比。 |
%steal | 管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比。 |
%idle | CPU空闲时间百分比。 |
5、磁盘属性值列说明
列 | 列说明 |
Device | 以sdX形式显示的设备名称 |
tps | 每秒进程下发的IO读、写请求数量 |
KB_read/s | 每秒从驱动器读入的数据量,单位为K。 |
KB_wrtn/s | 每秒从驱动器写入的数据量,单位为K。 |
KB_read | 读入数据总量,单位为K。 |
KB_wrtn | 写入数据总量,单位为K。 |
Blk_read/s | 每秒读取的block数. |
Blk_wrtn/s | 每秒写入的block数. |
Blk_read | 读入的block总数. |
Blk_wrtn | 写入的block总数. |
rrqm/s | 每秒对该设备的读请求被合并次数,文件系统会对读取同块(block)的请求进行合并 |
wrqm/s | 每秒对该设备的写请求被合并次数 |
r/s | 每秒完成的读次数 |
w/s | 每秒完成的写次数 |
rkB/s | 每秒读数据量(kB为单位) |
wkB/s | 每秒写数据量(kB为单位) |
avgrq-sz | 平均每次IO操作的数据量(扇区数为单位) |
avgqu-sz | 平均等待处理的IO请求队列长度 |
await | 平均每次IO请求等待时间(包括等待时间和处理时间,毫秒为单位) |
svctm | 平均每次IO请求的处理时间(毫秒为单位) |
%util | 采用周期内用于IO操作的时间比率,即IO队列非空的时间比率 |