Linux 未检测到超线程

Linux 未检测到超线程

我有一台戴尔服务器,有两个Intel Xeon E5645 cpu,每个cpu有6个核心,每个核心都是超线程的(即应该相当于两个虚拟核心)。我在这台服务器上安装了 CentOS 6.2,它似乎只检测到 12 个核心(尽管总共应该有 24 个虚拟核心)。

当我查看/proc/cpuinfo每个CPU时,我得到:

cpu cores: 6
siblings: 6

这似乎表明核心数量等于虚拟核心数量,或者未检测/启用超线程。

当我运行时,dmidecode我可以看到 HT 标志已打开,并且我确实看到以下内容,这似乎表明 BIOS 已正确配置为超线程。

Core Count: 6
Core Enabled: 6
Thread Count: 12

为了让 Linux 检测到所有虚拟核心,我是否缺少一些配置?

答案1

您是否检查过您的 BIOS 设置,即如果您的 BIOS 中没有打开超线程,则它无法运行。

答案2

在Linux内核配置中,有一个选项叫做

配置_NR_CPUS

其在内核文档中的描述:

这允许您指定该内核支持的最大 CPU 数量。支持的最大值为 512,有意义的最小值为 2。

检查该值,并根据需要增加它。当然,之后您需要重新编译内核。

相关内容