安装:

sudo apt install sysstat
sudo apt install iotop

参考:centos 7 查看磁盘io ,找出占用io读写很高的进程

1. iostat

终端输入:

iostat

输出如:

用 iostat 查看磁盘 IO,确认读写负载:

iostat -x 1 10

如图,红色框如果 %util 接近100%,表明I/O请求太多,I/O系统已经满负荷,磁盘可能存在瓶颈. 一般 %util 大于 70,I/O压力就比较大,读取速度有较多的wait,然后再看其他的参数.

[1] - rrqm/s: 每秒进行merge的读操作数目,即delta(rmerge)/s

[2] - wrqm/s: 每秒进行merge的写操作数目,即delta(wmerge)/s

[3] - r/s: 每秒完成的读I/O设备次数,即delta(rio)/s

[4] - w/s: 每秒完成的写I/0设备次数,即delta(wio)/s

[5] - rsec/s: 每秒读扇区数,即delta(rsect)/s

[6] - wsec/s: 每秒写扇区数,即delta(wsect)/s

[7] - rKB/s: 每秒读K字节数,是rsec/s的一半,因为每扇区大小为512字节

[8] - wKB/s: 每秒写K字节数,是wsec/s的一半

[9] - avgrq-sz: 平均每次设备I/O操作的数据大小(扇区),即delta(rsect+wsect)/delta(rio+wio)

[10] - avgqu-sz: 平均I/O队列长度,即delta(aveq)/s/1000(因为aveq的单位为毫秒)

[11] - await: 平均每次设备I/O操作的等待时间(毫秒),即delta(ruse+wuse)/delta(rio+wio)

[12] - svctm:平均每次设备I/O操作的服务时间(毫秒),即delta(use)/delta(rio+wio)

[13] - %util:一秒中有百分之多少的时间用于I/O操作,或者说一秒中有多少时间I/O队列是非空的

2. iotop

使用 iotop 找出 IO 高的进程:

iotop

如:

注:

[1] - iotop 可能需要 sudo 运行.

[2] - 如果运行出现提示:

To run an uninstalled copy of iotop,
launch iotop.py in the top directory

解决办法:

which iotop
#/usr/sbin/iotop

vim /usr/sbin/iotop

进行如下编辑:

#!/usr/bin/python - old
#!/usr/bin/python2 - new
Last modification:April 21st, 2021 at 10:04 am