Windows“iowait”CPU利用率报告

Windows是否以与 Linux相同的方式记录并报告“ iowait”?”即,进程进入“不间断睡眠”并从“cpu免费”中减去所花费的时间?

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

Windows内核中的一些概念与Linux中的概念有很大不同,这就是为什么在Perfmon中没有看到iowait计数器的原因.

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

如果您对在特定设备上进行I / O操作所花费的总时间感兴趣,则应该查看latency-related counters以及在此时间段内处理的相应请求的数量.但是,这不允许您在同步和异步访问模式中将其分解.

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...