iostat - %util 如何影响 %idle 和 %iowait

iostat - %util 如何影响 %idle 和 %iowait

查看 iostat,如果系统需要发出 io 请求,但由于 %util 被固定而尚未能够这样做,那么该等待是否会算作 %idle 或 %iowait?

答案1

三个概念的含义:

%util:前面的回答已经把idle的含义描述清楚了。

%idle:系统处于空闲状态,即没有正在运行的进程。

%iowait: 对于给定的 CPU,I/O 等待时间是该 CPU 处于空闲状态(即未执行任何任务)并且该 CPU 上安排的任务请求的至少有一个未完成的磁盘 I/O 操作(在生成该 I/O 请求时)。

%util高说明IO比较忙,IO系统的速率远低于CPU的处理速率,所以:

1)如果系统有一些CPU密集型任务在运行,那么在IO等待的时候CPU会去运行其他任务,CPU占用率高,%idle低。同时%iowait低(iowait表示IDLE时IO传输的比例)

2)如果系统没有任务需要运行,IO等待的时候CPU处于空闲状态,此时CPU使用率较低,%idle较高,%iowait较高。

答案2

%iowait,这是等待可用性所花费的时间。

答案3

这里帮助理解%util:

检查上面的网站,因为同一页面上的以下文本引用了一两个示例。

%util:此数字表示设备处理请求所用时间的百分比。%util 的计算方式为 (r/s + w/s) * svctim / 1000ms * 100 => 1025*0.96/1000 * 100 => 98.5% 这仅仅意味着在 1 秒的间隔内,有 1025 个请求发送到磁盘,每个请求需要 0.96 毫秒才能由磁盘处理,因此在 1 秒(或 1000 毫秒)的时间段内磁盘使用时间为 984 毫秒。这意味着磁盘利用率超过 98%

在该示例中,每秒发出的读写总数为 611 + 414 => 1025。每个请求需要 0.96 毫秒来处理。因此,1025 个请求需要 1025 x 0.96 => 984 毫秒来处理。因此,在将这些请求发送到设备的 1 秒内,处理这些请求需要 984 毫秒。这意味着设备利用率为 984/1000 * 100 => ~98.4%。如您在上面的 iostat 输出中看到的,%util 确实显示 ~ 98.5%

这有助于您更好地理解您所查看的内容,以便您可以根据需要采取适当的措施。

-布伦丹

相关内容