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
2
3
# -d 表示,显示设备(磁盘)使用状态;-x 显示详细信息;-k某些使用block为单位的列强制使用Kilobytes为单位;
# 每隔1秒刷新1次,显示10次
iostat -d -x -k 1 10

结果:
设备详情
参数说明:

  • 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

CPU