I/O负载过高一直是一个很难定位的问题,下边通过一些命令或工具进行问题定位
1.top
通过top命令可以查看当前浪费在i/o等待(wa)上的cpu百分比,数字越高说明越多的cpu资源在等待i/o权限
2.iostat
iostat可以看到哪块磁盘上的i/o读写高
iostat -x 2 5 (每隔两秒打印一次,共打印5次)
注:在多数情况下应该忽略第一份报告,因为每次打印的报告将基于来自上一个间隔以来的时间,所以第一次打印是基于自上次开机以来这段时间的统计)
此设备只有一块磁盘,作为例子代表性不强
3.iotop
iotop可以帮助确定哪个程序的读写较大
补充:ps也可以代替iotop使用,虽然ps可以统计内存和cpu信息,但是没有磁盘io信息的统计。但是它显示进程状态,可以用于指示进程是否在等待io。
进程状态码:
D:不间断的睡眠(通常是io)
R:正在运行或可运行(在运行队列中)
S:可间断的睡眠