ハイパースレッド テクノロジーを使用すると、単一の物理プロセッサ コアを 2 つの論理プロセッサのように機能させることができます。プロセッサは、同時に 2 つの異なるアプリケーションを実行できます。論理プロセッサと物理プロセッサの混同を避けるために、Intel は物理プロセッサをソケットと呼んでおり、このセクションの説明でもこの用語を使用します。
Intel Corporation は、Pentium IV および Xeon のプロセッサ ラインのパフォーマンスを向上させるハイパースレッド テクノロジーを開発しました。ハイパースレッド テクノロジーにより、単一のプロセッサ コアが 2 つの独立したスレッドを同時に実行できます。
ハイパースレッドはシステムのパフォーマンスを 2 倍にするわけではありませんが、アイドル リソースを有効に活用することによってパフォーマンスを向上でき、特定の重要なワークロード タイプについてスループットを向上させます。ビジーなコアの 1 つの論理プロセッサ上で実行中のアプリケーションは、非ハイパースレッド プロセッサ上で単独で実行される場合に取得するスループットの半分よりわずかに多いスループットを期待できます。ハイパースレッドのパフォーマンス向上はアプリケーションに強く依存し、アプリケーションによっては、ハイパースレッドを使用するとパフォーマンスが低下する場合があります。 これは、両方の論理プロセッサ間で多くのプロセッサ リソース (キャッシュなど) が共有されるためです。
一部のプロセッサはハイパースレッディングをサポートしていないため、1 つのコアにつき 1 つのスレッドのみを備えています。それらのプロセッサの場合、コアの数も論理プロセッサの数に一致します。
ハイパースレッドと 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 がハイパースレッドをサポートしているかどうかを確認するには、システムのドキュメントを参照してください。