ハイパースレッド テクノロジーを使用すると、単一の物理プロセッサ コアを 2 つの論理プロセッサのように機能させることができます。プロセッサは、同時に 2 つの異なるアプリケーションを実行できます。論理プロセッサと物理プロセッサの混同を避けるために、Intel は物理プロセッサをソケットと呼んでおり、このセクションの説明でもこの用語を使用します。

Intel Corporation は、Pentium IV および Xeon のプロセッサ ラインのパフォーマンスを向上させるハイパースレッド テクノロジーを開発しました。ハイパースレッド テクノロジーにより、単一のプロセッサ コアが 2 つの独立したスレッドを同時に実行できます。

ハイパースレッドはシステムのパフォーマンスを 2 倍にするわけではありませんが、アイドル リソースを有効に活用することによってパフォーマンスを向上でき、特定の重要なワークロード タイプについてスループットを向上させます。ビジーなコアの 1 つの論理プロセッサ上で実行中のアプリケーションは、非ハイパースレッド プロセッサ上で単独で実行される場合に取得するスループットの半分よりわずかに多いスループットを期待できます。ハイパースレッドのパフォーマンス向上はアプリケーションに強く依存し、アプリケーションによっては、ハイパースレッドを使用するとパフォーマンスが低下する場合があります。 これは、両方の論理プロセッサ間で多くのプロセッサ リソース (キャッシュなど) が共有されるためです。

注: Intel ハイパースレッド テクノロジーを使用するプロセッサでは、メモリ キャッシュや機能単位など、コアのリソースの大部分を共有する 2 つの論理プロセッサを、1 つのコアに担当させることができます。このような論理プロセッサを、通常、スレッドと呼びます。

多くのプロセッサはハイパースレッドをサポートしておらず、その結果、1 つのコアにつき 1 つのスレッドだけを備えています。それらのプロセッサの場合、コアの数も論理プロセッサの数に一致します。次の各プロセッサはハイパースレッドをサポートしており、1 つのコアにつき 2 つのスレッドを備えています。

  • Intel Xeon 5500 プロセッサ マイクロアーキテクチャに基づいたプロセッサ
  • Intel Pentium 4 (HT 有効)
  • Intel Pentium EE 840 (HT 有効)

ハイパースレッドと ESXi ホスト

ハイパースレッドが有効になっているホストは、ハイパースレッドがないホストと同様な動作をする必要があります。しかし、ハイパースレッドを有効にする場合は、特定の要素について検討する必要があることがあります。

ESXi ホストは、プロセッサ時間をインテリジェントに管理して、システム内のプロセッサ コア間で負荷が円滑に分散されるように保証します。CPU 0 と 1 はともに第 1 のコア上にあり、CPU 2 と 3 は第 2 のコア上にあるといったように、同じコア上の論理プロセッサは、連続した CPU 番号を持ちます。仮想マシンは、同じコアの 2 つの論理プロセッサ上よりも、2 つの異なるコア上に優先的にスケジュール設定されます。

論理プロセッサの作業がない場合、論理プロセッサは停止状態になり、論理プロセッサの実行リソースが解放されて、同じコア上のほかの論理プロセッサ上で実行中の仮想マシンが、コアの実行リソース全体を使用できます。VMware スケジューラは、この停止時間を適切に捕捉し、コアのリソース全体を使用して実行中の仮想マシンを、半分のコア上で実行されている仮想マシンよりも多くチャージします。このプロセッサ管理方法により、標準の ESXi リソース割り当てルールにサーバが違反しないようにします。

ハイパースレッドを使用するホストでは、CPU アフィニティを有効にする前にリソース管理の必要性を検討してください。たとえば、優先順位の高い仮想マシンを CPU 0 にバインドしていて、別の優先順位の高い仮想マシンを CPU 1 にバインドしている場合、この 2 台の仮想マシンは同じ物理コアを共有する必要があります。この場合、これらの仮想マシンのリソース要求を満たせないことがあります。カスタム アフィニティ設定が、ハイパースレッド システムにとって意味があることを確認してください。

ハイパースレッドの有効化

ハイパースレッドを有効にするには、まず、使用するシステムの BIOS 設定でハイパースレッドを有効にし、vSphere Clientでオンにする必要があります。ハイパースレッドは、デフォルトで有効になっています。

使用している CPU がハイパースレッドをサポートしているかどうかを確認するには、システムのドキュメントを参照してください。

手順

  1. システムがハイパースレッド テクノロジーをサポートしていることを確認します。
  2. システムの BIOS でハイパースレッドを有効にします。
    メーカーによって、このオプションは [論理プロセッサ] と呼ばれることもあれば、 [ハイパースレッディングの有効化] と呼ばれることもあります。
  3. ESXiのハイパースレッドが有効なことを確認します。
    1. vSphere Clientで、ホストを参照して移動します。
    2. [構成] をクリックします。
    3. [システム][システムの詳細設定] をクリックし、[VMkernel.Boot.hyperthreading] を選択します。
      設定を有効にするには、ホストを再起動する必要があります。値が true ならば、ハイパースレッドは有効です。
  4. [ハードウェア][プロセッサ] をクリックして、論理プロセッサ数を表示します。

結果

ハイパースレッドが有効になりました。