iostat
linux系统出现了性能问题,一般我们可以通过top、iostat、free、vmstat等命令 来查看初步定位问题。其中iostat可以给我们提供丰富的IO状态数据。
iostat 由 Red Hat Enterprise Linux AS 发布。同时 iostat 也是 Sysstat 的一部分。所以我们安装要安装sysstat。
iostat命令被用于监视系统输入输出设备和CPU的使用情况。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。
同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。
1.1 安装 sysstat 包
sudo apt-get install sysstat
1.2 语法:
iostat [ 选项 ] [ <时间间隔> [ <次数> ] ]
- 选项:
-c:仅显示CPU使用情况 -d:仅显示设备利用率 -k:显示状态以千字节每秒为单位,而不使用块每秒 -m:显示状态以兆字节每秒为单位 -p:仅显示块设备和所有被使用的其他分区的状态 -t:显示每个报告产生时的时间 -V:显示版号并退出 -x:显示扩展状态
- 参数:
间隔时间:每次报告的间隔时间(秒) 次数:显示报告的次数
- 字段说明:
%user:应用程序使用CPU的时间占比 %nice:拥有高优先级的应用程序使用CPU的时间占比 %system:内核程序使用CPU的时间占比 %iowait:表示等待进行 I/O 所使用 CPU 的时间百分比 %steal : 显示虚拟机管理器在服务另一个虚拟处理器时虚拟CPU处在非自愿等待下花费时间的百分比 %idle:显示 CPU 的空闲时间 Device:监测设备名称 rrqm/s:每秒需要读取需求的数量 wrqm/s:每秒需要写入需求的数量 r/s :每秒实际读取需求的数量 w/s:每秒实际写入需求的数量 rkB/s:每秒实际读取的大小,单位为KB wkB/s:每秒实际写入的大小,单位为KB avgrq-sz:平均每次设备I/O操作的数据大小 avgqu-sz:平均I/O队列长度 await:平均每次设备I/O操作的等待时间 svctm:平均每次设备I/O操作的服务时间 %util:被I/O操作消耗的CPU百分比