Linux
檢查是否啟用了超執行緒?
如何使用 perl 腳本檢查 Linux 機器上是否啟用了超執行緒?
我正在嘗試以下方式:
dmidecode -t processor | grep HTT
讓我知道我是否走在正確的軌道上。
*2014 年 7 月 8 日添加的註釋:*正如Riccardo Murri指出的那樣,我在下面的回答僅顯示處理器是否報告支持超執行緒。通常,*nix O/S 配置為啟用超執行緒(如果支持)。但是,要以程式方式實際檢查此內容,請參見Nils 的回答!
—- 2012年3月25日的原始答案:
你確實在正確的軌道上:)
dmidecode -t processor | grep HTT
在 Linux 上,我通常只在
/proc/cpuinfo
. 參見例如grep '^flags\b' /proc/cpuinfo | tail -1
或者如果您想在模式中包含“ht”
grep -o '^flags\b.*: .*\bht\b' /proc/cpuinfo | tail -1
(
\b
匹配單詞邊界,在“ht”是另一個標誌的一部分的情況下有助於避免誤報。)
我一直只使用以下內容並查看“每個核心的執行緒:”。
hostname:~ # lscpu Architecture: x86_64 CPU(s): 24 Thread(s) per core: 2 <-- here Core(s) per socket: 6 CPU socket(s): 2 NUMA node(s): 2 Vendor ID: GenuineIntel CPU family: 6 Model: 44 Stepping: 2 CPU MHz: 1596.000 Virtualization: VT-x L1d cache: 32K L1i cache: 32K L2 cache: 256K L3 cache: 12288K
但是請注意,如果任何邏輯處理器已通過簡單的
echo 0 > /sys/devices/system/cpu/cpuX/online