linux 查看磁盘IO状态操作指南

直接上干货。

iostat命令是Linux系统查看磁盘IO状态的主要工具。

安装方法: RedHat系统:yum install sysstat。
Debian系统:apt-get install sysstat。

运行命令: iostat -x -k。

关键参数: %util:磁盘IO占用率。
接近1 00%说明IO请求多,磁盘可能瓶颈。
svctm:平均每次I/O服务时间(毫秒)。
await:平均每次I/O等待时间(毫秒)。
远大于svctm说明IO队列长。
avgqu-sz:平均IO队列长度。
衡量系统IO负荷。

辅助命令: top:看CPU和内存,间接反映磁盘IO。
vmstat:看虚拟内存、进程、CPU。
b参数是等待资源进程数。
wa参数是IO等待占CPU百分比。
超过3 0%说明IO压力大。

结论: iostat是主要工具。
分析%util、svctm、await、avgqu-sz能定位磁盘IO瓶颈。
top和vmstat是辅助工具。
看整体性能和IO压力。

linux查看磁盘io的几种方法

上周 我试了几个命令看Linux磁盘IO。

用top命令看。
关注%wa。
数值高说明IO等待多。

再用vmstat。
敲入vmstat 2 5 看bo和bi列。
数字大说明IO很频繁。
还有procs的b列。
数字高也说明IO等得多。

最后用iostat。
得先装。
CentOS用yum install sysstat。
Ubuntu用apt install sysstat。
然后敲iostat -dx。
看r/s,w/s,rKB/s,wKB/s。
数字都高说明IO操作很频繁。

这样几个命令组合着用。
能全面看懂磁盘IO情况。
你看着办。

Linux查看磁盘io开销的几种方法

等等,我昨天晚上排查服务器卡顿,就是用这个iostat。
那时候是凌晨三点,办公室就我一个人,窗外下着雨,雨点敲打玻璃的声音特别清晰。
我盯着屏幕上的iostat输出,盯着那个wKB/s的数字,它当时飙到了2 00KB/s。
我就想,这服务器怎么跟个老式打字机似的,一个字一个字往外敲数据。
结果发现是某个备份任务没跑对,把所有磁盘都拖慢了。
这事儿让我想起小时候玩过的那种机械计算器,咔咔响,速度慢,但很可靠。
现在的硬盘读写速度比那玩意儿快几万倍,可有时候还是会卡壳。
这到底是技术进步的副作用,还是我们用数据太猛了?