linux服务器硬盘IO读写负载查看

Posted 南风知我意丿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux服务器硬盘IO读写负载查看相关的知识,希望对你有一定的参考价值。

文章目录

最近在用spark 向mysql 倒腾数据,发现spark写MySQL很慢。排查了代码没发现问题,想着看下服务器的IO情况。下面记录一下排查思路。

1.首先top命令看下

40.0wa ,IO等待所占用的CPU时间的百分比,高过30%时IO压力高

2,先用iostat查看磁盘io 是否读写负载很高

命令:iostat -x 1 10

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队列是非空的

重要指标:

%util 98.40
如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。

%idle 45.99
idle小于70% IO压力就较大了,一般读取速度有较多的wait

3.找出占用io高的进程的工具 iotop

可以看到 一水的MySQL的进程 居高不下。说明就是写MySQL太猛 把磁盘打满了。

IO负荷的压力测试

time dd if=/dev/zero bs=1M count=2048 of=direct_2G

此命令为在当前目录下新建一个2G的文件,我们在新建文件夹的同时来测试IO的负荷情况

以上是关于linux服务器硬盘IO读写负载查看的主要内容,如果未能解决你的问题,请参考以下文章

Linux CentOs7 监控CPU 内存 硬盘IO读写,网络负载,CPU温度等

linux怎么计算io读写速度?

Linux 磁盘IO

如何查看Linux下进程的IO活动状况 00 Hey,Linux

如何查看Linux cpu/内存/硬盘/IO等数据?

如何查看Linux cpu/内存/硬盘/IO等数据?