Linux系统出现了性能问题,一般我们可以通过top.iostat,vmstat等命令来查看初步定位问题。
其中iostat可以给我们提供丰富的IO状态数据
# which iostat
# rpm -qf /bin/iostat
# yum info sysstat
# rpm -ql sysstat | grep bin



# iostat -dmx 1

%util与硬盘设备饱和度关系
%util表示该设备有I/O(即非空闲)的时间比率,不考虑I/O有多少,只考虑有没有。
由于现代硬盘设备都有并行处理多个I/O请求的能力,所以%util即使达到100%也不意味着设备饱和了。
举个简化的例子:某硬盘处理单个I/O需要0.1秒,有能力同时处理10个I/O请求,那么当10个I/O请求依次顺序提交的时候,需要1秒才能全部完成,在1秒的采样周期里%util达到100%;而如果10个I/O请求一次性提交的话,0.1秒就全部完成,在1秒的采样周期里%util只有10%。可见,即使%util高达100%,硬盘也仍然有可能还有余力处理更多的I/O请求,即没有达到饱和状态。
那么iostat(1)有没有哪个指标可以衡量硬盘设备的饱和程度呢?很遗憾,没有。

参考
Linux 命令 —— iostat I/O 和 CPU 监视工具
https://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858810.html
如何计算iostat的util?
https://oomake.com/question/1067184
https://www.orczhou.com/index.php/2010/03/iostat-detail/
容易被误读的IOSTAT
http://linuxperf.com/?p=156
Linux IO实时监控iostat命令详解
https://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858810.html
I/O statistics fields
https://www.kernel.org/doc/Documentation/iostats.txt
网友评论