Hyper-V プロセッサのパフォーマンス

仮想化サーバーは複数の仮想マシンをホストします。これらの仮想マシンは、相互に分離されていますが、基盤となるハードウェア リソースを共有しています。 プロセッサ、メモリ、および I/O デバイスは仮想化されます。 サーバーを 1 台のマシンに統合すると、仮想化によってリソースの使用率が向上し、エネルギー効率が向上し、サーバーの運用とメンテナンスのコストが削減されます。 この記事は、Hyper-V のパフォーマンスを微調整および改善するためのプロセッサのパフォーマンスに関する考慮事項を理解するのに役立ちます。

仮想マシン統合サービス

仮想マシン (VM) 統合サービスには、Hyper-V 専用の I/O デバイス用の高性能ドライバーが用意されており、エミュレートされたデバイスと比較して、I/O の CPU オーバーヘッドが大幅に削減されます。 サポートされているすべての VM に最新バージョンの VM 統合サービスをインストールしてください。 このサービスにより、アイドル状態にあるゲストから使用頻度の高いゲストまで、ゲストの CPU 使用率が低下し、I/O スループットが向上します。 これは、Hyper-V が稼働しているサーバーのパフォーマンスを調整するための最初の手順です。 サポートされているゲスト オペレーティング システムの一覧については、「Hyper-V の概要」を参照してください。

仮想プロセッサの数

CPU を集中的に使用しない負荷を持つ VM は、仮想プロセッサを 1 つだけ使用するように構成する必要があります。 この構成が必要になるのは、ゲスト オペレーティング システムの他の同期コストなど、複数の仮想プロセッサに関連する余分なオーバーヘッドがあるためです。 Hyper-V で構成可能なコンポーネントの最大数の詳細については、「Windows Server での HYPER-V のスケーラビリティの計画」を参照してください。

ピーク負荷時に VM が 1 CPU を超える処理を必要とする場合は、仮想プロセッサの数を増やします。

バックグラウンド アクティビティ

アイドル状態の VM のバックグラウンド アクティビティを最小限に抑えることで、他の VM が使用する CPU サイクルが解放されます。 Windows ゲストは通常、アイドル状態では 1% 未満の CPU しか使用しません。 VM のバックグラウンド CPU 使用率を最小限に抑えるためのベスト プラクティスを次に示します。

  • 最新バージョンの VM 統合サービスをインストールします。

  • VM の設定ダイアログ ボックスを使用して、エミュレートされたネットワーク アダプターを削除します (Microsoft Hyper-V 専用のアダプターを使用する)。

  • CD-ROM や COM ポートなどの使用していないデバイスを削除したり、メディアを切断します。

  • Windows ゲスト オペレーティング システムが使用されていないときはサインイン画面に表示したままにし、スクリーン セーバーを無効にします。

  • 既定で有効になっているスケジュールされたタスクとサービスを確認します。

  • logman.exe query -ets を実行して、既定でオンになっている Windows イベント トレーシング (ETW) トレース プロバイダーを確認します。

  • サーバー アプリケーションを改善して、周期的アクティビティ (タイマーなど) を減らします。

  • ホストとゲストの両方のオペレーティング システムでサーバー マネージャーを閉じます。

  • Hyper-V マネージャーは常に VM のサムネイルを更新するため、実行中のままにしないようにします。

VM で Windows のクライアント バージョンを構成する場合に、全体の CPU 使用率を低減するためのベスト プラクティスを次に示します。

  • SuperFetch や Windows Search などのバックグラウンドサービスを無効にします。

  • スケジュールされたデフラグなどのスケジュール済みタスクを無効にします。

仮想 NUMA

Windows Server の Hyper-V では、VM のスケール制限が拡張され、大規模なスケールアップ ワークロードの仮想化が可能になります。 大規模な VM を作成する場合は、通常、ホスト システム上の複数の NUMA ノードのメモリが使用されます。 このような種類の VM 構成では、同じ NUMA ノードから仮想プロセッサとメモリを割り当てないと、ワークロードのパフォーマンスが低下する可能性があります。 ワークロードで NUMA の最適化を利用できないため、パフォーマンスに悪影響が及びます。 Hyper-V で構成可能なコンポーネントの最大数の詳細については、「Windows Server での HYPER-V のスケーラビリティの計画」を参照してください。

Windows Server では、Hyper-V は VM に仮想 NUMA トポロジを提示します。 既定では、この仮想 NUMA トポロジは基になっているホスト コンピューターの NUMA トポロジと一致するように最適化されます。 仮想 NUMA トポロジを VM に公開すると、ゲスト オペレーティング システムおよびそこで実行されている NUMA 対応のすべてのアプリケーションは、物理コンピューターで実行しているときと同じように、NUMA パフォーマンスの最適化を利用できます。

ワークロードの観点からは、仮想と物理の NUMA の間に違いはありません。 VM 内では、ワークロードがローカル メモリをデータに割り当て、同じ NUMA ノード内でそのデータにアクセスすると、基になっている物理システムで高速のローカル メモリ アクセスが行われます。 リモート メモリ アクセスによるパフォーマンスの低下は回避されます。 vNUMA をメリットを利用できるのは、NUMA 対応アプリケーションだけです。

Microsoft SQL Server は、NUMA 対応アプリケーションの一例です。 詳細については、「不均一メモリ アクセスについて」を参照してください。

仮想 NUMA と動的メモリ機能を同時に使用することはできません。 動的メモリが有効になっている VM には、実質的に仮想 NUMA ノードが 1 つのみ存在します。 仮想 NUMA 設定に関係なく、この VM に NUMA トポロジは提示されません。

仮想 NUMA の詳細については、「Hyper-V 仮想 NUMA の概要」を参照してください。

Hyper-V の詳細については、次の記事を参照してください。