在运维工作当中,会遇到很多问题,磁盘io问题是也经常遇到,那么查看Linux的磁盘io状态有什么办法呢?可选择iostat,iotop软件进行查看。
一、iotop查看磁盘IO状态
默认CentOS7.X操作系统是没有安装iotop的,需要安装,具体操作步骤如下:
#安装iotop软件
yum install iotop -y
#查看iotop软件版本
iotop --version
#使用iotop软件进行查看磁盘io性能状态
iotop
二、iostat查看磁盘IO状态
默认CentOS7.X操作系统是没有安装iostat的,需要安装,具体操作步骤如下:
#安装iostat软件
yum install sysstat -y
#查看iostat软件版本信息
iostat -V
#使用iostat软件进行查看磁盘IO性能状态,其中-x代表显示详细信息,-d代表显示磁盘使用情况,-t代表显示tty和Cpu信息,2代表2秒刷新一次
iostat -x -d -t 2
其中的各项含义如下:
选项说明rrqm/s每秒对该设备的读请求被合并次数,文件系统会对读取同块(block)的请求进行合并
wrqm/s每秒对该设备的写请求被合并次数
r/s每秒完成的读次数
w/s每秒完成的写次数
rkB/s每秒读数据量(kB为单位)
wkB/s每秒写数据量(kB为单位)
avgrq-sz平均每次IO操作的数据量(扇区数为单位)
avgqu-sz平均等待处理的IO请求队列长度
await平均每次IO请求等待时间(包括等待时间和处理时间,毫秒为单位)
svctm平均每次IO请求的处理时间(毫秒为单位)
%util采用周期内用于IO操作的时间比率,即IO队列非空的时间比率
如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。
idle小于70% IO压力就较大了,一般读取速度有较多的wait。
同时可以结合vmstat 查看查看b参数(等待资源的进程数)和wa参数(IO等待所占用的CPU时间的百分比,高过30%时IO压力高),另外 await 的参数也要多和 svctm 来参考。差的过高就一定有 IO 的问题。
avgqu-sz 也是个做 IO 调优时需要注意的地方,这个就是直接每次操作的数据的大小,如果次数多,但数据拿的小的话,其实 IO 也会很小.如果数据拿的大,才IO 的数据会高。也可以通过 avgqu-sz × ( r/s or w/s ) = rsec/s or wsec/s.也就是讲,读定速度是这个来决定的。