Linux iostat命令
简介
iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。
使用命令如下:
1 | iostat |
参数说明:
- %user:CPU处在用户模式下的时间百分比
- %nice:CPU处在带NICE值的用户模式下的时间百分比
- %system:CPU处在系统模式下的时间百分比
- %iowait:CPU等待输入输出完成时间的百分比
- %steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比
- %idle:CPU空闲时间百分比
- tps:该设备每秒的传输次数
- kB_read/s:每秒从设备(drive expressed)读取的数据量
- kB_wrtn/s:每秒向设备(drive expressed)写入的数据量
- kB_read: 读取的总数据量
- kB_wrtn:写入的总数量数据量
结果分析:
如果%iowait的值过高,表示硬盘存在I/O瓶颈
如果%idle值高,表示CPU较空闲
如果%idle值高但系统响应慢时,可能是CPU等待分配内存,应加大内存容量。
如果%idle值持续低于10,表明CPU处理能力相对较低,系统中最需要解决的资源是CPU。
使用实例
查看设备使用率(%util)、响应时间(await)
1 | # -d 表示,显示设备(磁盘)使用状态;-x 显示详细信息;-k某些使用block为单位的列强制使用Kilobytes为单位; |
结果:
参数说明:
- tps:该设备每秒的传输次数
- rkB/s:每秒从设备(drive expressed)读取的数据量
- wkB/s:每秒向设备(drive expressed)写入的数据量
- rrqm/s:每秒这个设备相关的读取请求有多少被Merge了
- wrqm/s:每秒这个设备相关的写入请求有多少被Merge了
- r/s:每秒读取的扇区数
- w/s:每秒写入的扇区数
- await:每一个IO请求的处理的平均时间(单位是毫秒)。这里可以理解为IO的响应时间,一般地系统IO响应时间应该低于5ms,如果大于10ms就比较大了。
- %util: 在统计时间内所有处理IO时间,除以总共统计时间。例如,如果统计间隔1秒,该设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的%util = 0.8/1 = 80%,所以该参数暗示了设备的繁忙程度。
查看cpu状态
1 | iostat -c 10 1 |