在linux服务器性能排查中,磁盘io瓶颈是影响业务运行的常见问题,很多时候我们不仅需要查看实时io数据,更需要拿到一段时间内的磁盘读写峰值,才能准确判断业务高峰时的负载情况,这里给大家分享几个常用且高效的查看方法。
iostat统计短时间内的峰值
iostat是最常用的io统计工具,属于sysstat工具包,几乎所有linux发行版都默认自带。如果要统计一段时间内的磁盘读写峰值,只需要指定采样间隔和采样次数,再配合简单的命令过滤就能直接拿到结果。比如要统计30分钟内的峰值,可执行命令:`iostat -dxm 1 1800 | grep "^sd" | sort -k5 -nr | head -n1`,命令会每秒采样一次,持续采集30分钟,最终直接输出这段时间内单块磁盘的读写峰值数据,适合排查偶发io尖刺,不需要手动盯屏记录,非常方便。

sar查询历史峰值数据
如果需要查看过去几天甚至一周内的磁盘读写峰值,用sar工具是最优选择。默认安装sysstat后,sar会自动定时采集系统性能数据,保存在`/var/log/sa/`目录下,不需要额外开启监控进程。想要查询当天的磁盘峰值,直接执行`sar -d -m | awk 'nr>3 {print $2,$4,$5}' | sort -k3 -nr | head -n1`即可;如果要查询指定日期的峰值,只需要加上数据文件参数,比如`sar -d -f /var/log/sa/sa12`就是查询本月12号的磁盘io数据,非常适合回溯历史性能问题,不用重新部署监控就能拿到历史峰值。
nmon直观查看峰值
对于喜欢直观展示的用户,nmon工具可以说是首选。安装启动后按下d键切换到磁盘监控页面,界面会清晰显示每块磁盘的当前读写,同时会直接标注从监控启动以来的最高读写峰值,数据一目了然,还支持导出数据生成报表,适合新手快速定位问题。
不同场景可以灵活选择方法:短时间统计用iostat,回溯历史用sar,直观查看用nmon,都能快速准确拿到你需要的磁盘读写峰值,全文约605字。



































