Dell-Poweredge

在 Linux 中禁用超執行緒(無法訪問 BIOS)

  • August 14, 2020

我有一個在遠端設施執行金融交易應用程序的系統。我無權訪問 ILO/DRAC,但需要禁用超執行緒。該系統執行 Intel Westmere 3.33GHz X5680 六核 CPU。我可以重新啟動,但要確保系統由於性能問題而沒有啟用超執行緒。有沒有一種干淨的方法可以在 Linux 中做到這一點?

編輯:noht添加到核心引導命令行的指令不起作用。對於 RHEL 也是如此。

見: https ://bugzilla.redhat.com/show_bug.cgi?id=440321#c9

如果您願意,您可以在執行時執行此操作。我在這裡找到了一個很好的解決方案: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

您可以為自己設置一個在系統啟動後執行的腳本。

較新的核心提供了同時多執行緒 (SMT) 控制項。

您可以通過以下方式檢查 SMT 的狀態;

cat /sys/devices/system/cpu/smt/active

改變狀態

echo off > /sys/devices/system/cpu/smt/control

選項是;

  • 離開
  • 強制關閉

我們已經使用 Linux Kernel 4.4.0 對此進行了測試

引用自:https://serverfault.com/questions/235825