我有一个系统在远程工厂运行金融交易应用程序.我无法访问ILO / DRAC,但需要禁用超线程.该系统运行Intel Westmere 3.33GHz X5680十六进制CPU.我可以重新启动,但是要确保系统由于性能问题而无法启用超线程.在
Linux中有没有一种干净的方法来做到这一点?
编辑:添加到内核启动命令行的noht指令不起作用. RHEL也是如此.
解决方法
如果您愿意,可以在运行时执行此操作.我找到了一个很好的解决方案:
http://www.absolutelytech.com/2011/08/01/how-to-disable-cpu-cores-in-linux/
第1步:确定要关闭的Linux CPU:
cat /proc/cpuinfo
查找具有相同“核心ID”的CPU,您要关闭每对中的一个.
步骤2:关闭超线程CPU(在我的例子中是Linux看到的总共8个“CPU”中的最后四个)
echo 0 > /sys/devices/system/cpu/cpu4/online echo 0 > /sys/devices/system/cpu/cpu5/online echo 0 > /sys/devices/system/cpu/cpu6/online echo 0 > /sys/devices/system/cpu/cpu7/online
您可以自己设置一个在系统启动后运行的脚本.