Linux

檢查是否啟用了超執行緒?

  • January 8, 2020

如何使用 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

引用自:https://unix.stackexchange.com/questions/33450