为什么我在多核 PC 上看到 CPU 使用率不对称

为什么我在多核 PC 上看到 CPU 使用率不对称

CPU:AMD Phenom II X4 955 Ubuntu 11.10 amd64

我启动了一些只使用一个核心的应用程序,当我查看 CPU 负载图时,gnome-system-monitor我发现我的四个 CPU 的负载都不对称:负载最多的(按时间计算)是 CPU2,然后是 CPU1,然后是 CPU3,而 CPU4 只负载了 10 秒。CPU2 连续 3 分钟处于 100% 负载状态。当没有运行大量 CPU 的应用程序时,我的 CPU4 的负载也低于其他应用程序。Ubuntu 试图杀死我的电脑还是应该这样?

答案1

不幸的是,许多程序不具备多处理能力,只能在单线程/单处理器上运行。有些程序使用线程,这些线程可以在“主”程序以外的另一个处理器核心上执行。

如果您有一个仅使用单线程的程序,则它只需要一个处理器,并且将其移动到其他 CPU 是没有意义的,因为这需要时间。

不过,您可以确定进程到核心的映射是没有问题的。请参阅http://en.wikipedia.org/wiki/Scheduling_(computing)#Linux了解一些信息。

并且,如果在一段时间内仅使用一个处理器核心,则处理器核心不会过热。

答案2

我在使用四核处理器时也遇到了类似的奇怪行为。我只是想回复,因为我想我可能可以帮助澄清一下。

问题不在于某些程序仅使用 1 个核心,我可以理解这一点,但是问题在于某些程序不对称地使用所有核心。换句话说,在任何给定时间,4 个核心中只有 1 个处于 100%,而其他核心则下降到 10 - 30。它像这样运行几秒钟,然后切换核心。

我已经截屏使用 DeVeDe 3.21.0(我认为 ffmpeg 0.8.4 是后端。-version 表示它是用 gcc 4.6.3 构建的)时的这种行为,以更好地说明这一点:

http://i49.tinypic.com/fblqj9.png

使用 Ubuntu 12.04.1 LTS,这里还有尤纳姆输出:

3.2.0-33-generic-pae #52-Ubuntu SMP i686 athlon i386 GNU/Linux

希望这有助于澄清问题。

相关内容