CPU 负载未分布在各个核心上

CPU 负载未分布在各个核心上

在繁重的任务下,似乎 CPU 负载并没有分散到所有可用的内核上,而且当我在等待操作执行时,风扇被触发了...查看 CPU 监视器,一个 CPU 占 100%,而其他 CPU 处于空闲状态。

我有一台 8 核 i7,搭载的是 ubuntu 13.10,当我知道有 8 倍的功率可用时,却还要等待,这让我很烦。

我可以通过使用 gedit 打开一个大文件(70M)来重现此问题,但这种情况会在各种情况下发生。

我能做些什么呢?

干杯!

答案1

i7 实际上有 4 个内核,但每个内核都有两个超线程(这意味着它可以非常快速地在两个任务之间切换)。对于操作系统来说,它看起来像是 8 个内核,因此这里的区别可能无关紧要。抱歉。:-)

好的,因此操作系统可以使用 i7 有效地同时执行 8 项任务。但前提是它一次要做 8 项任务。如果只要做一项任务,那么它只会使用 1 个核心。

这是哪里线程开始发挥作用。可以编写程序以使用线程 - 我知道 GIMP 和 ImageMagick 就是两个这样做的程序。当它们要执行复杂的任务时,它们会分开工作并在不同的线程中执行,操作系统会将这些线程分配给不同的核心。尝试将 ImageMagick 设置为处理非常大的 JPEG,您会看到所有 8 个核心都变得忙碌。

现在,我不确定 gedit 是否是多线程的 - 但即使是,打开 70M 文件时的主要工作是在文件加载时处理磁盘中断,并且我认为这项工作仅限于一个核心。

你能做什么呢?只要忙碌起来,执行多项任务,让你的电脑同时做很多事情,那么负载就会分散到各个核心上。

相关内容