すべてのスレッドコアが表示されない問題を解決する方法

すべてのスレッドコアが表示されない問題を解決する方法

オペレーティングシステムで読み取ることができるCPUスレッドの数について問い合わせたいと思います。この質問は、コアスレッドをチェックする方法に関する質問ではなく、コアが表示されない問題を解決する方法についてです。

サーバー仕様

  • HPE dl360p第8世代
  • CPU: E5-2680 v2 2個
  • Debian プロキシモックス
  • Biosでハイパースレッディングを有効にする

スレッドCPUはコア20個にスレッド40個になっていますが、確認してみるとスレッドが20lscpu個だけcat /proc/cpuinfo 表示されます。

サーバーを再起動する前に、スレッドはまだ40を読み取り、再起動した後は20だけ読み取りました。

すべてのスレッドを表示できるアイデアはありますか?

答え1

ハイパースレッディングは、Linuxオペレーティングシステムを介して無効にすることもできます。システムに既に初期解決策が適用されている場合SpectreファミリーのZombieLoad攻撃、オペレーティングシステムレベルのハイパースレッディングを無効にすることができます。回避策は、システムの起動時に適用されます。

Run cat /sys/devices/system/cpu/smt/active: 返された場合、0ハイパースレッディングは有効になっていません。cat /sys/devices/system/cpu/smt/control再起動せずにハイパースレッディングを再度有効にできるかどうかを示します。

nosmt=force起動オプションを追加または実行して無効にした場合は、echo forceoff > /sys/devices/system/cpu/smt/control無効化オプション/コマンドを見つけて削除し、システムを再起動してハイパースレッディングを再度有効にする必要があります。

(= Norではない)cat /sys/devices/system/cpu/smt/controlと表示されている場合は、再起動せずにハイパースレッディングを再度有効にできます。offforceoffnotsupportedecho on > /sys/devices/system/cpu/smt/control

源泉:サーバー障害に関する質問です。そしてカーネル文書

一方、HP ProLiant DL360p Gen8は2012年に発売され、2016年に廃止されたため、現在は予想寿命はほぼ終わっています。システムが寿命の大部分を実行した場合、システムの再起動時にCPUの1つに障害が発生した可能性があります。

関連情報