Linuxではハイパースレッディングが検出されません。

Linuxではハイパースレッディングが検出されません。

Intel Xeon E5645 CPUが2つあり、それぞれ6つのコアがあり、各コアはハイパースレッディングされています(つまり、2つの仮想コアと同じである必要があります)。このサーバーにはCentOS 6.2がインストールされていますが、合計24の仮想コアが必要であるにもかかわらず、12のコアのみを検出しているようです。

各CPUを見ると、次のような結果/proc/cpuinfoが得られます。

cpu cores: 6
siblings: 6

これは、コア数が仮想コア数と同じか、ハイパースレッディングが検出/アクティブ化されていないことを示すようです。

実行すると、dmidecodeHTフラグがオンになり、次の内容が表示されます。これは、BIOSがハイパースレッディング用に正しく設定されていることを示しているようです。

Core Count: 6
Core Enabled: 6
Thread Count: 12

Linuxがすべての仮想コアを検出するために欠落している構成はありますか?

答え1

BIOS設定を確認しましたか?つまり、BIOSでハイパースレッディングがオンになっていないと機能しません。

答え2

Linux カーネル構成には、次のオプションがあります。

CONFIG_NR_CPUS

カーネルのドキュメントで説明されています。

これにより、このコアがサポートする最大CPU数を指定できます。サポートされている最大値は512、意味のある最小値は2です。

この値を確認し、必要に応じて増やしてください。もちろん、後でカーネルを再コンパイルする必要があります。

関連情報