RedHat如何确定核心数

时间:2015-10-14 11:06:03

标签: linux configuration centos redhat multicore

首先让我澄清一下我的问题 - 我已经知道如何通过查询/ sys / devices / system / cpu中的项目来确定linux认为它具有的核心数量as ./possible和./present,以及使用lstopo,dmidecode等。

我想知道的是,内核如何到达sys / devices / system / cpu / present中的特定数字?

这样做的动机是我在我的实验室里有两块相同的处理器板,它们都带有四核i7-2715QE处理器。一块板,为简单起见,称之为“好”。董事会,报告为四核(如预期)与超线程(HT),总共8 cpus。 其他电路板仅报告两个核心,再次打开HT,总共只有4个cpus。

sys / devices / system / cpu上游的某些东西必须确定不使用其中两个核心。好的'电路板在sys /.../可能和sys /.../ present中列出0-7,而“坏”'电路板显示0-3,但它们上面有相同的i7-2715QE。

我检查了BIOS / UEFI屏幕是否有任何差异,并且没有找到任何内容。我可以找到板上没有物理开关/跳线。这可能是编译到内核中的吗?我应该看看Grub的bootline选项吗?两块主板都运行RedHat 6.好的主板是6.3,另一块是6.6,但这些相似,足以在这方面不会产生任何影响。即,我不认为版本本身与他们构建不同的可能性一样重要。

更新

它肯定与操作系统映像或grub设置有关,b / c从外部实时映像启动时,坏板显示sysfs中预期的cpu0..cpu7。关于板载闪存中的内容必须禁用四个内核中的两个。

1 个答案:

答案 0 :(得分:1)

原来,启动线上的acpi选项是罪魁祸首。由于尚未确定的原因,指定acpi = off导致内核误解cpu拓扑,应该有4个具有超线程功能的内核被认为是4 cpus作为使用超线程的2个内核。

设置acpi = ht似乎解决了这个问题。