我最近将一个应用程序从一台服务器迁移到另一台服务器,遇到了一些问题,我想知道它们是否与超线程有关。
关于我的问题,我目前无法访问旧机器。当我访问时,我知道 /proc/cpuinfo 显示有 2 个处理器,而系统只有 1 个物理处理器,所以这说明超线程已启用。
我想知道的是,/proc/cpuinfo 是否可以纯粹从信息的角度显示两个处理器,但内核不是用 SMP 编译的,所以进程没有触及超线程虚拟 CPU,或者内核缺少 SMP 是否意味着系统永远不会知道在 /proc/cpuinfo 中显示第二个 CPU。
如果有人碰巧有一个他们知道有多个 CPU 的盒子(最好是 HT,但是物理信息会比我现在拥有的更多),并且加载了非 SMP 内核并且可以检查它们的 /proc/cpuinfo,那将非常感激。
答案1
我 99.9% 确定 cpuinfo 不会显示内核不支持的处理器。
另一方面,dmidecode 可能。
答案2
我同意马特西蒙斯的回答。
请允许我补充一点,超线程(Pentium4 的东西)本身对我的系统没有任何好处。没有性能提升,有时甚至会带来麻烦。你最好完全禁用它。
答案3
如果禁用超线程,/proc/cpuinfo 中的第二个处理器列表将消失。但我建议禁用它,因为它没有任何好处,只会引起问题。如果只有一个 SMP 内核,就不会出现第二个列表。如果没有 SMP 内核,则只会显示一个。