性能优化工具-iostat
常用命令
-x 扩展信息
-m 使用MB单位
命令后跟数字x y 每x秒刷新, 显示y次
#每隔 2 秒显示一次详细的设备统计信息,共显示 5 次。
iostat -x 2 5-c 显示cpu相关的信息
-p 指定特定设备信息,比如-p sda只展示sda下的\
指标
基本指标
- Device: 设备名称,例如
sda
表示第一个SCSI磁盘设备。
读取指标
- r/s: 每秒读取请求数(读操作次数)。
- rrqm/s: 每秒合并的读取请求数。操作系统会将多个相邻的读取请求合并为一个以提高效率。
- %rrqm: 合并读取请求的百分比,计算公式
$$
%rrqm/s = (r/s + rrqm/s)
$$
- rkB/s: 每秒读取的千字节数。
- r_await: 平均每个读取请求的等待时间(以毫秒计),包括在队列中的时间和服务时间。
- rareq-sz: 平均每个读取请求的大小(单位是扇区,即(512字节))。
写入指标
- w/s: 每秒写入请求数(写操作次数)。
- wrqm/s: 每秒合并的写入请求数。操作系统会将多个相邻的写入请求合并为一个以提高效率。
- %wrqm: 合并写入请求的百分比,计算公式为
wrqm/s
除以w/s
。
$$
%wrqm/s = (w/s + wrqm/s)
$$
- wkB/s: 每秒写入的千字节数。
- w_await: 平均每个写入请求的等待时间(以毫秒计),包括在队列中的时间和服务时间。
- wareq-sz: 平均每个写入请求的大小(单位是扇区,即(512字节))。
删除指标(如果适用)
- d/s: 每秒删除请求数(删除操作次数)。
- drqm/s: 每秒合并的删除请求数。
- %drqm: 合并删除请求的百分比
$$
%drqm/s = (w/s + drqm/s)
$$
- dkB/s: 每秒删除的千字节数。
- d_await: 平均每个删除请求的等待时间(以毫秒计),包括在队列中的时间和服务时间。
- dareq-sz: 平均每个删除请求的大小(单位是扇区,即(512字节))。
文件系统指标
- f/s: 每秒文件系统操作数。
- f_await: 平均每个文件系统操作的等待时间(以毫秒计)。
其它指标
aqu-sz: 平均I/O队列长度,即平均有多少I/O请求在队列中等待处理。
%util: 设备利用率,表示设备忙碌的时间百分比。
$$
%util = (time device is busy / total time) * 100
$$- 因为现在IO设备有并行处理的能力,因此util=100%也并不意味着IO设备是饱和的(因为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