![iostat 命令输出中的 %util 是什么意思?如果是100%,我们可以增加更多的工作量吗?](https://linux22.com/image/213831/iostat%20%E5%91%BD%E4%BB%A4%E8%BE%93%E5%87%BA%E4%B8%AD%E7%9A%84%20%25util%20%E6%98%AF%E4%BB%80%E4%B9%88%E6%84%8F%E6%80%9D%EF%BC%9F%E5%A6%82%E6%9E%9C%E6%98%AF100%25%EF%BC%8C%E6%88%91%E4%BB%AC%E5%8F%AF%E4%BB%A5%E5%A2%9E%E5%8A%A0%E6%9B%B4%E5%A4%9A%E7%9A%84%E5%B7%A5%E4%BD%9C%E9%87%8F%E5%90%97%EF%BC%9F.png)
最近我在电话采访中被问到这个问题。我知道 iostat 命令可以用来检查 Linux 中的磁盘性能。但我不知道如何回答这个问题。这是否意味着磁盘已满载?谢谢。
答案1
您无法确定 %util 存在多少 I/O 负载。它仅表示调度程序/驱动程序/存储中至少有一个 io 未完成的采样时间的百分比。
因此,对于 iostat 1(采样率为 1 秒),%util 为 75% 意味着至少有 1 个 io 未完成,需要存储总 1 秒采样时间的 750 毫秒。
就实际负载而言,它不代表任何有用的信息,除非您正在处理单个物理磁盘。在单个物理磁盘(例如直接连接的 SATA 磁盘)的情况下,%util 大致表示负载的百分比磁盘在 io 上工作的时间。
对于单个物理磁盘及其单个物理磁盘头,一旦 iostat 达到 100%,则在该加载点无法执行任何其他 io 工作。
其中负载点由 io 的大小、读取与写入的比率、负载的随机性或顺序性组成。确定负载警报限制在很大程度上取决于所使用的存储技术和应用程序。
我有一次测试一种存储产品性能的经历。我在Linux系统端使用fio工具。
即使利用率达到 100%,我仍然可以向磁盘添加更多工作负载。
fio --name=fiotest --filename=/xxx/fiotest --size=16Gb --rw=write --bs=1M --direct=1 --numjobs=8 --ioengine=libaio --iodepth=8 --group_reporting --runtime=60
Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util
sdf 0.00 **2269.67** 0.00 **774805.33** 0.00 **9833.67** 0.00 **81.25** 0.00 **27.00 61.28** 0.00 **341.37 0.44 99.97**
sdd 0.00 **2267.33** 0.00 **774144.00** 0.00 **9835.33** 0.00 **81.27** 0.00 **25.49 57.78** 0.00 **341.43 0.44 99.97**
sde 0.00 **2270.67** 0.00 **775061.33** 0.00 **9833.33** 0.00 **81.24** 0.00 **26.11 59.30** 0.00 **341.34 0.44 99.97**
avg-cpu: %user %nice %system %iowait %steal %idle
Starting 8 processes
Jobs: 8 (f=0): [f(8)][100.0%][w=519MiB/s][w=518 IOPS][eta 00m:00s]
fiotest: (groupid=0, jobs=8): err= 0: pid=10248: Thu Oct 20 03:26:28 2022
write: IOPS=2002, BW=2003MiB/s (2100MB/s)(117GiB/60040msec); 0 zone resets
fio --name=fiotest --filename=/xxx/fiotest --size=16Gb --rw=read --bs=1M --direct=1 --numjobs=8 --ioengine=libaio --iodepth=8 --group_reporting --runtime=60
Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util
sdf **2271.33** 0.00 **775146.67** 0.00 **9842.00** 0.00 **81.25** 0.00 **25.91** 0.00 **58.85 341.27** 0.00 **0.44 99.63**
sdd **2264.67** 0.00 **774464.00** 0.00 **9846.67** 0.00 **81.30** 0.00 **25.02** 0.00 **56.67 341.98** 0.00 **0.44 99.43**
sde **2272.33** 0.00 **775061.33** 0.00 **9841.00** 0.00 **81.24** 0.00 **25.36** 0.00 **57.62 341.09** 0.00 **0.44 99.77**
dm-7 **36341.33** 0.00 **2325845.33** 0.00 0.00 0.00 0.00 0.00 **25.42** 0.00 **923.68 64.00** 0.00 **0.03 100.07**