Linux之查看硬盘IO

徘徊边缘 提交于 2020-03-12 02:03:50

我们知道了如果查看CPU负载可以使用top命令,查看内存使用情况可以使用free -h命令,但是我们还需要知道硬盘的使用情况,使用iostat和iotop

用iostat -x 1 10

如果 iostat 没有,要 yum install -y sysstat安装这个包,第一眼看下图红色圈圈的那个如果%util接近100%,表明I/O请求太多,I/O系统已经满负荷,磁盘可能存在瓶颈,一般%util大于70%,I/O压力就比较大,读取速度有较多的wait,然后再看其他的参数,

rrqm/s:每秒进行merge的读操作数目。即delta(rmerge)/s 
wrqm/s:每秒进行merge的写操作数目。即delta(wmerge)/s 
r/s:每秒完成的读I/O设备次数。即delta(rio)/s 
w/s:每秒完成的写I/0设备次数。即delta(wio)/s 
rsec/s:每秒读扇区数。即delta(rsect)/s 
wsec/s:每秒写扇区数。即delta(wsect)/s 
rKB/s:每秒读K字节数。是rsec/s的一半,因为每扇区大小为512字节 

wKB/s:每秒写K字节数。是wsec/s的一半 
avgrq-sz:平均每次设备I/O操作的数据大小(扇区)。即delta(rsect+wsect)/delta(rio+wio) 
avgqu-sz:平均I/O队列长度。即delta(aveq)/s/1000(因为aveq的单位为毫秒) 
await:平均每次设备I/O操作的等待时间(毫秒)。即delta(ruse+wuse)/delta(rio+wio) 
svctm:平均每次设备I/O操作的服务时间(毫秒)。即delta(use)/delta(rio+wio) 
%util:一秒中有百分之多少的时间用于I/O操作,或者说一秒中有多少时间I/O队列是非空的(硬盘的使用率)

 这里我们发现只能看到硬盘的使用率,但是看不到是哪个进程占用的多。

2,找出使用io高的进程的工具  iotop

yum install iotop -y

直接执行 iotop 命令,然后看下图的显示,查看那个进程的读写,找出进程,这里我们发现是mysql占用的速率较高。

 本笔记参考:https://blog.csdn.net/saga_gallon/article/details/82891709,如果更好用的工具,请多多指教。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!