任务管理器处理器 %

任务管理器处理器 %

与此问题相关:Perfmon 的“% 处理器时间”计数器怎么会超过 100%?

当我在任务管理器中手动观察进程时,有用户报告了一个问题,发现 Oracle 进程在一段持续时间内(5-15 分钟)使用了 80%-95%。

所以过去几天我一直在使用 perfmon 来跟踪该过程,并注意到它在短时间内超过了 100%,因此显然在 perfmon 中它是所有处理器的总和。

我的问题是,我在任务管理器中看到的 80-95% 实际上对应于 perfmon 中的 160-180%,对吗?

(显然考虑到某些进程可能无法有效地使用所有处理器)。

任务管理器显示 CPU 使用率为 80-95%:

在此处输入图片描述

对于单个进程对象,Perf Monitor 的峰值可能会超过 100%:

在此处输入图片描述

答案1

检查 MSDN 上的处理器时间数据

在多处理器系统上,系统监视器报告的 Processor\% Processor Time 值对于任何特定处理器或线程永远不会超过 100%。

另一方面,报告的 Process 对象“% Processor Time”值可能会超过 100%;如果出现这样的值,则可能表明该进程的线程累计使用了超过 100% 的处理器。


基本上,这意味着在检查进程(具有多条执行路径)时,如果有多个核心同时运行代码,则会看到超过 100% 的结果。进程有多个可用核心,它可以选择在少数几个核心上运行。

另一方面,如果检查 CPU 线程,您永远不会看到高于 100% 的值,因为这是实际测量的资源。CPU 线程是 Microsoft 对 CPU 核心的称呼:启用 HT 的核心中有两个线程。

相关内容