Windows“iowait”CPU利用率报告

Windows“iowait”CPU利用率报告

Windows 是否考虑并报告“等待”和 Linux 一样吗?也就是说,进程进入“不可中断睡眠”,并且从“CPU 空闲时间”中减去它们所花费的时间?

如果是这样,哪些 Perfmon 计数器适合检测“由于延迟服务 IO 而导致 CPU 繁忙”而不是“由于计算而导致 CPU 繁忙”?

答案1

iowaitWindows 内核中的某些概念与 Linux 中的概念有很大不同,这就是为什么您在 Perfmon 中看不到计数器的原因。

首先,Windows 中的调度实体是线程,而不是进程。进程只是 1+ 个线程的容器。此外,Windows 没有为其线程定义不可中断的睡眠状态(更准确地说,所有 I/O 请求都可以被中断 - 例如被同一进程的另一个线程中断),因此iowait在 Windows 平台上没有完全相同的对应项。Windows 将其线程等待同步 I/O 的时间报告为“空闲”,因为线程在发出同步 I/O 请求后会立即由调度程序进行上下文切换。

如果你对特定设备上 I/O 操作的总时间感兴趣,你应该查看延迟相关计数器以及此时间段内处理的相应请求数。但是,这不允许您将其分解为同步和异步访问模式。

相关内容