computerの日記

Cisco,SHELL,C,Qt,C++,Linux,ネットワーク,Windows Scriptなどの発言です

Hyperthreading が有効かどうか確認する方法

# dmidecode -t processor | grep -E '(Core Count|Thread Count)'

(表示の一例)

Core Count: 4
Thread Count: 8

下の段の数値が上の段の数値の 2倍なので、Hyper Threading が有効になっています。

一般ユーザでも確認できますよ。

$ grep -H . /sys/devices/system/cpu/cpu*/topology/thread_siblings_list | sort -n -t ',' -k 2 -u
(表示の一例)

/sys/devices/system/cpu/cpu0/topology/thread_siblings_list:0,4
/sys/devices/system/cpu/cpu1/topology/thread_siblings_list:1,5
/sys/devices/system/cpu/cpu2/topology/thread_siblings_list:2,6
/sys/devices/system/cpu/cpu3/topology/thread_siblings_list:3,7

上記のトポロジの結果から、Hyper Threading が有効になっており、そのペアもわかります。

では、Hyper Threading を無効にする方法です。

GRUB の設定に、'noht' として再起動することにより、全て無効にできます。

BIOS でむこうにしなければいけない場合があります。

以下はある BIOS の一例です。
「FEATURE」-「CPUの機能」-「ハイパースレッディング」
有効から無効にしたところ、Hyper Theading が無効になったようです。