Windows 2012 任务管理器与进程资源管理器,CPU 使用率不同,为什么?

Windows 2012 任务管理器与进程资源管理器,CPU 使用率不同,为什么?

我们有一台配备 4 个 Intel Xeon E5-4617(6 核)CPU 的服务器。我们将其用作数据库服务器。

Windows 2012 任务管理器显示 2 个处理器没有 CPU 使用率。Process Explorer 显示所有处理器都有 CPU 使用率,但从第 4 个处理器开始 3 个核心的 CPU 使用率很低。

哪一个是正确的?

编辑:截图,使用 y-cruncher(多核 Pi 生成器)。

在此处输入图片描述 在此处输入图片描述 在此处输入图片描述

答案1

哪一个是正确的?

或许,两者都有。

尽管您从图表中得到的印象是,资源使用情况不是连续轮询的,而是以离散间隔轮询的。因此,这里发生的情况是,在某个时间点,任务管理器轮询 CPU 的使用情况并得到答案。几毫秒后,Process Explorer 轮询 CPU 的使用情况并得到略有不同的答案。

这是有道理的,因为它是在略微不同的时间进行轮询的,而且两次测量可能都是准确的,只是间隔略有不同。我们可能没有注意到 10 毫秒的时间差,但对于计算机来说这是一个很长的时间 - 3.8Ghz 处理器可以在我们甚至无法察觉的 10 毫秒内处理 3800 万次操作。 这是一篇与 ServerFault 有点相关的博客文章,介绍了轮询间隔如何导致错误结论

实际上,如果 Process Explorer 看到的活动较少而 Task Manager 看不到,那么我并不感到惊讶,这是因为 Process Explorer 正在测量由 Task Explorer 产生的 CPU 使用率 - 轮询活动、相关计算和图形绘制都不是免费的,并且会消耗 CPU 资源来处理。

因此,这里有两件事要做:

  1. 您正在测量不同的时间间隔,这些时间间隔对我们来说可能小到难以察觉,但对于计算机来说,这实际上是相对较长的时间段,在此期间可能会发生许多活动,从而产生不同的、精确的测量结果。

  2. 测量资源会消耗资源,这一点可以通过第二时间获取数据的任何应用程序来检测。就像量子力学中的观察者效应一样 - 观察或测量事件的行为会改变事件 - 测量资源利用率的行为会使用您试图测量的相同资源。

答案2

根据新的截图,我关于一般情况的回答并不适用。

您的问题是任务管理器没有在您的两个 CPU/12 个核心上运行指标。这些图表是空的/空白的,并不表示完全空闲的 CPU。当然,我不确定为什么它正在这样做(即使它在文本输出中清楚地获得了正确的 CPU 数量),或者你会做什么来纠正它,但这可以解释你所看到的巨大差异。

因此,系统信息是正确的,因为它似乎实际上正在绘制和测量所有 CPU 和 CPU 核心上的 CPU 使用率。

相关内容