Redhat Enterprise 7.5 内核 3.10.0-862.el7 下的可变 cpu 核心字段?

Redhat Enterprise 7.5 内核 3.10.0-862.el7 下的可变 cpu 核心字段?

我们在一台服务器上看到一种奇怪的现象,其中/proc/cpuinfo“cpu 核心”字段经常发出不同的值。 /proc/cpuinfo正确地说有 8 个 cpu(1 个物理 x 4 个核心 x 2 个超线程),但是 cpu-cores 字段可以是 4(正确)或 65531、65528,...(不太正确)。报告错误数字的似乎是相同的虚拟 CPU。

我们为什么关心?好吧,我们的第 3 方库之一正在使用指纹来/proc/cpuinfo进行许可,因此会产生故障,因为核心数量正在发生变化。

  • 有没有人见过这个?
  • 知道这是硬件还是操作系统错误吗?
  • 关于如何诊断和解决问题有什么建议吗?

感谢您提供任何信息。


以下是 的输出示例/proc/cpuinfo

cpu cores   : 4
cpu cores   : 20
cpu cores   : 20
cpu cores   : 20
cpu cores   : 4
cpu cores   : 4
cpu cores   : 4
cpu cores   : 65528

答案1

尽管我们没有掌握所有信息,但目前这看起来像是一个 Linux 内核错误。这是在 github 上提交这似乎是为了解决这个问题而做出的。标签似乎表明此修复位于 4.16.X 内核中。这是提交的评论:

如果没有此修复,/proc/cpuinfo在使 CPU 内核脱机并再次联机后,将显示不正确的 CPU 内核数量,如下例所示...

此补丁通过在关闭逻辑 CPU 时始终将 booted_cores 变量归零来修复此问题。

这看起来是由于盒子有时会休眠,尽管我们也担心“涡轮增压”功能也会禁用核心。我们现在正在关闭睡眠和休眠模式,这可能会解决这个问题,因为升级内核对我们来说不是一个容易的选择。

到目前为止我们已经尝试过以下 grub 设置哪个没有似乎有效,或者至少它没有阻止计算机休眠并出现此问题。

intel_idle.max_cstate=0
processor.max_cstate=1

我们还发现此页面有关禁用涡轮增压

相关内容