仮想化基盤ではハイパースレッドを有効にすることが多いですよね。そこで確認する方法は、VMwareの環境の場合は、ESXiにログインしてCPU数をチェックすると、倍に表示されます。これでハイパースレッドが有効かどうか確認できます。詳細設定でもチェックできますけど。


そして、Linux、CentOSでハイパースレッドが有効で倍になったCPU数を調べるコマンドがないのかチェックしていたら、RedHatのサイトの紹介されていました。わざわざBIOSに入ってみなくていいのと、OSから確認できるのが便利です。


物理 CPU、CPU コア、および論理 CPU の数を確認する


環境としては、Linux4~7で使えます。CentOSも同様です。

【環境】
Red Hat Enterprise Linux 4
Red Hat Enterprise Linux 5
Red Hat Enterprise Linux 6
Red Hat Enterprise Linux 7


以下は抜粋です。

x86 または x86_64 システムで物理 CPU、CPU コア、および論理 CPU の違いは何ですか?
RHEL オペレーティングシステムで利用可能なプロセッサーの一覧を取得するにはどうしたら良いですか?


物理 CPU の数

以下のコマンドを実行すると、システム上のアクティブな物理プロセッサーの数が表示されます。たとえば、アクティブな物理プロセッサーが 2 つある場合は、その 1 つがシステムシャーシを開き、2 つの物理プロセッサーを手動で削除できます。


$ grep physical.id /proc/cpuinfo | sort -u | wc -l
2

CPU ごとのコアの数

マルチコアプロセッサーを持つシステムで以下のコマンドを実行すると、1 つの物理プロセッサーに CPU コアがいくつあるかが報告されます (ごく稀に報告されない場合もあります)。たとえば、物理プロセッサーの CPU コアが 4 つで物理 CPU が 2 つの場合は、2 つの物理プロセッサーのそれぞれが 4 つの CPU コアを持つため全部で 8 コアになります。

$ grep cpu.cores /proc/cpuinfo | sort -u
cpu cores :4

論理プロセッサーの数

このコマンドを実行すると、Linux カーネルが表示する「論理」プロセッサーの総数が表示されます。通常、 この数字は 3 つの中で一番大事なものとなります。これは有効なプロセッサーの数です。オペレーティングシステムにとって、これは指定したマイクロ秒で動作できる CPU の数になります。たとえば、上述のシナリオでは、以下に示される数は 8 ではなく 16 になります。たとえば、このコマンドが示す結果が CPU コアの総数と異なる場合は、CPU でハイパースレッド処理が有効になっていて、各コア (この例では 2 つの使用可能な「スレッド」) に分配されるのが原因となります

$ grep processor /proc/cpuinfo | wc -l
16
 

物理CPUの数とコアの数をかけた値の倍になっていたらハイパースレッドが有効になっていたという確認になります。Linux、CentOSでハイパースレッドが有効で倍になったCPU数を調べたい場合には参考にしてみてください。