iostat主要用于监控系统设备的IO负载情况,可以监控分区的IO情况,但有一定的局限,不能监控某个进程的IO。
本文主要介绍iostat的简单用法,还有其他的工具比如iotop可以监控某个进程的IO情况,以及dstat、sar、vmstat等,本文档只针对iostat的使用做介绍。
iostat命令介绍
执行iostat命令,一般显示如下:
其中会显示分区的IO情况,具体参数网上资料很多,本文档不作详细介绍。下面是从网上摘抄的一些介绍供参考:
rrqm/s: 每秒进行 merge 的读操作数目.即 delta(rmerge)/s
wrqm/s: 每秒进行 merge 的写操作数目.即 delta(wmerge)/s
r/s: 每秒完成的读次数
w/s: 每秒完成的写次数
rkB/s: 每秒读数据量(kB为单位)
wkB/s: 每秒写数据量(kB为单位)
avgrq-sz:平均每次IO操作的数据量(扇区数为单位)
avgqu-sz: 平均等待处理的IO请求队列长度
await: 平均每次IO请求等待时间(包括等待时间和处理时间,毫秒为单位)
svctm: 平均每次IO请求的处理时间(毫秒为单位)
%util: 采用周期内用于IO操作的时间比率,即IO队列非空的时间比率,即一秒中有百分之多少的时间用于 I/O
如果%util接近100%,说明产生的I/O请求太多,I/O系统已经满负荷
idle小于70% IO压力就较大了,一般读取速度有较多的wait。
iostat安装
iostat一般在linux下会有,如果命令不存在可以通过apt-get install 进行安装。
下面介绍若无法通过apt安装的场景,通过源码编译的方式来安装。
获取源码
iostat属于sysstat模块,通过官网(SYSSTAT)下载sysstat模块代码,这里下载稳定版本。
获取源码后,通过交叉编译方法进行编译。
编译后,在设置的安装目录下会有生成的可执行文件,把对应的可执行文件push到设备上即可运行。
在设备上实测如下图:
其中乱码字符目测是由于颜色显示的问题,可忽略。