少数核心的使用率为 100%,而少数核心处于 100% 空闲状态

少数核心的使用率为 100%,而少数核心处于 100% 空闲状态

获取以下 CPU 使用率输出。可能存在以下问题:少数核心 100% 使用,而少数核心 100% 空闲:

Cpu0  :100.0%us,  0.0%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu1  :100.0%us,  0.0%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu2  : 99.7%us,  0.3%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu3  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu4  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu5  :100.0%us,  0.0%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu6  : 99.7%us,  0.3%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu7  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu8  : 99.7%us,  0.3%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu9  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

答案1

问题并不明确,您是否想知道为什么所有核心都没有被利用,或者为什么有些核心的利用率达到了 100%。

应用程序决定了它将使用多少个核心或线程。大多数应用程序都是单线程的,只会使用一个核心。这样所有操作都会按预期顺序进行。例如,如果 a+b=c 和 c+d=e 被传递给 2 个不同的核心,如果 a+b=c 尚未完成,您如何在处理 c+d=e 时知道 c 是什么?

您可以使用top命令查看哪些应用程序正在使用这些核心。

答案2

我读了你附带的报告后发现,所有核心的使用率都达到了 100%——只是有些核心在执行“用户”任务,其他核心在运行“系统”任务或其他任务(无论“id”是什么)。这是正常的,因为大多数任务都是单线程的(如另一个答案中所述)。计算机在前台执行一些工作,即你明确启动的工作,还有一些在后台执行(通常是操作系统任务,但也可能是 BOINC 任务或其他分布式计算系统之类的任务)。

相关内容