チェックリスト:Hyper-V のパフォーマンスの測定
Hyper-V 仮想マシンにインストールされているゲスト オペレーティング システムのパフォーマンスを分析する原則のほとんどは、物理マシンにインストールされているオペレーティング システムのパフォーマンスの分析と同じですが、収集方法の多くは異なります。 以下のセクションは、Hyper-V 仮想マシンにインストールされているゲスト オペレーティング システムで実行されているBizTalk Server ソリューションのパフォーマンスを評価する際のクイック リファレンスとして使用する必要があります。
ディスク I/O パフォーマンスの測定
Hyper-V 仮想マシンにインストールされているゲスト オペレーティング システムのディスク I/O パフォーマンスを測定するには、次のパフォーマンス モニター カウンターを使用します。
手順 | リファレンス |
---|---|
Hyper-V ホスト オペレーティング システムでのディスク待機時間の測定 – Hyper-V ホスト オペレーティング システムでのディスク パフォーマンスの最適な初期インジケーターは、"\Logical Disk()\Avg. Disk sec/Read" と "\Logical Disk(*)\Avg. Disk sec/Write" パフォーマンス モニター カウンターを使用して取得します。 これらのパフォーマンス モニター カウンターは、オペレーティング システムに応答するために読み取り操作と書き込み操作に要する時間を測定します。 一般的な経験則として、15 ミリ秒を超える平均応答時間は最適でないと見なされます。 一般的な経験則として、15 ミリ秒を超える平均応答時間は最適でないと見なされます。 これは、キャッシュのない単一の 7200 RPM ディスク ドライブの典型的なシーク時間に基づいています。 Windows アプリケーションとサービスはドライブ文字として表される論理ドライブを使用するため、論理ディスクと物理ディスクのパフォーマンス モニター カウンターを使用することをお勧めします。ここで、オペレーティング システムに提示される物理ディスク (LUN) は、ディスク アレイ内の複数の物理ディスク ドライブで構成できます。 \Logical Disk(*)\Avg. Disk sec/Read または \Logical Disk(*)\Avg. Disk sec/Write パフォーマンス モニター カウンターを使用して Hyper-V ホスト オペレーティング システムのディスク待機時間を測定する場合は、次の経験則を使用します。 これは、キャッシュのない単一の 7200 RPM ディスク ドライブの典型的なシーク時間に基づいています。 Windows アプリケーションとサービスはドライブ文字として表される論理ドライブを使用するため、論理ディスクと物理ディスクのパフォーマンス モニター カウンターを使用することをお勧めします。ここで、オペレーティング システムに提示される物理ディスク (LUN) は、ディスク アレイ内の複数の物理ディスク ドライブで構成できます。 \Logical Disk(*)\Avg. Disk sec/Read または \Logical Disk(*)\Avg. Disk sec/Write パフォーマンス モニター カウンターを使用して Hyper-V ホスト オペレーティング システムのディスク待機時間を測定する場合は、次の経験則を使用します。 - 1ms から 15ms = 正常 - 15 ミリ秒から 25 ミリ秒 = 警告またはモニター - 26 ミリ秒以上 = 重大、パフォーマンスが悪影響を受けます **注:* 仮想化されていない環境にインストールされている物理ディスクは、Hyper-V ホスト オペレーティング システム経由でアクセスされるディスクよりもパフォーマンスが向上します。 アプリケーションの全体的なパフォーマンスにとってディスクのパフォーマンスが非常に重要な場合は、物理ハードウェアでのみディスクをホストすることを検討してください。 メモ: ディスク I/O パフォーマンスを評価するときは、評価対象のディスク パーティションのスキャンを除外するようにウイルス対策ソフトウェアを構成してください。 ウイルス対策スキャンでは、パフォーマンスとスキュー テストの結果に悪影響を与える可能性のあるオーバーヘッドが発生します。 ゲスト オペレーティング システムでのディスク待機時間の測定 – ゲスト オペレーティング システム で使用されるディスクの応答時間は、Hyper-V ホスト オペレーティング システムで使用されるディスクの応答時間を測定するために使用されるのと同じパフォーマンス モニター カウンターを使用して測定できます。 |
ディスク パフォーマンス分析の詳細については、次のリソースを参照してください。 - 「Hyper-V 環境でのSQL Server 2008 の実行 - ベスト プラクティスとパフォーマンスに関する考慮事項」の「Hyper-V でSQL Serverを実行する場合のパフォーマンスオーバーヘッド」のセクション - Disk-Bound 問題の排除 - SQL Server事前デプロイ I/O のベスト プラクティス - 「SQL Server 2008 でのパフォーマンスの問題のトラブルシューティング」ホワイトペーパーの「I/O ボトルネック」セクション - Microsoft Server Performance Advisor (SPA) ツールを使用してディスク パフォーマンスのボトルネックを特定する方法 |
メモリ パフォーマンスの測定
次のパフォーマンス モニター カウンターを使用して、Hyper-V 仮想マシンにインストールされているゲスト オペレーティング システムのパフォーマンスに対する使用可能なメモリの影響を測定します。
手順 | リファレンス |
---|---|
Hyper-V ホスト オペレーティング システムで使用可能なメモリを測定 する – Hyper-V ホスト オペレーティング システムで使用できる物理メモリの量は、物理コンピューターの "\Memory\Available MBytes" パフォーマンス モニター カウンターを監視することによって決定できます。 このカウンターは、ホスト オペレーティング システムで使用可能な空き物理メモリの量を報告します。 ホスト オペレーティング システムで使用可能な物理メモリを評価するときは、次の経験則を使用します。
ゲスト オペレーティング システムで使用可能なメモリを測定 する – ゲスト オペレーティング システムで使用できるメモリは、Hyper-V ホスト オペレーティング システムで使用可能なメモリを測定するために使用されるのと同じパフォーマンス モニター カウンターを使用して測定できます。 |
使用可能な物理メモリがアプリケーション サーバーのパフォーマンスに与える影響の詳細については、Exchange Server 2003 の記事「Memory-Bound の問題の排除」を参照してください。 |
ネットワーク パフォーマンスの測定
Hyper-V を使用すると、ゲスト コンピューターは同じ物理ネットワーク アダプターを共有できます。 これはハードウェアを統合するのに役立ちますが、物理アダプターを飽和させないように注意してください。 Hyper-V 仮想マシンで使用されるネットワークの正常性を確保するには、次の方法を使用します。
手順 | リファレンス |
---|---|
ネットワーク待機時間をテストする | 各仮想マシンに ping を実行して、十分なネットワーク待機時間を確保します。 ローカル エリア ネットワークでは、1 ミリ秒未満の応答時間を受け取ることを想定しています。 |
パケット損失のテスト | pathping.exe ユーティリティを使用して、仮想マシン間のパケット損失をテストします。 Pathping.exe はネットワーク上のパケット損失を測定し、Windows 2000 Server 以降のすべてのバージョンの Windows で使用できます。 Pathping.exe は、各ネットワーク ノードに 100 回の ping 要求のバーストを送信し、返される ping の数を計算します。 ローカル エリア ネットワークでは、pathping.exe ユーティリティからの ping 要求を失う必要はありません。 |
ネットワーク ファイル転送をテストする | 仮想マシン間で 100 MB のファイルをコピーし、コピーの完了に必要な時間の長さを測定します。 正常な 100Mbit (メガビット) ネットワークでは、100 MB (メガバイト) のファイルを 10 秒から 20 秒でコピーする必要があります。 正常な 1Gbit ネットワークでは、100 MB のファイルを約 3 ~ 5 秒でコピーする必要があります。 これらのパラメーター以外のコピー時間は、ネットワークの問題を示しています。 ネットワーク転送が低下する一般的な原因の 1 つは、ネットワーク アダプターが 10 MB の半二重ネットワークを "自動検出" した場合に発生します。これにより、ネットワーク アダプターが使用可能な帯域幅を最大限に活用できなくなります。 |
Hyper-V ホスト オペレーティング システムでのネットワーク使用率を測定する | Hyper-V ホスト オペレーティング システムでのネットワーク使用率を測定するには、次のパフォーマンス モニター カウンターを使用します。 \Network Interface(*)\Bytes Total/sec – ネットワーク使用率の割合は、バイト合計/秒に 8 を掛けてビットに変換し、結果に 100 を掛け、ネットワーク アダプターの現在の帯域幅で除算することで計算されます。 ネットワーク帯域幅の使用率を評価するには、次のしきい値を使用します。 - 使用されたインターフェイスの 40% 未満 = 正常 - 使用されるインターフェイスの 41% から 64% = モニターまたは注意 - 消費されたインターフェイスの 65 から 100% = 重大、パフォーマンスが悪影響を受ける \Network Interface(*)\Output Queue Length – 出力キューの長さは、ネットワーク アダプターで待機しているスレッドの数を測定します。 ネットワーク アダプターで待機しているスレッドが 2 つを超える場合は、ネットワークがボトルネックになっている可能性があります。 この一般的な原因は、ネットワークの待機時間が短い、またはネットワーク上の高い競合率です。 出力キューの長さを評価するには、次のしきい値を使用します。 - 0 = 正常 - 1-2 = モニターまたは注意 - 2 より大きい = 重大、パフォーマンスが悪影響を受ける。 ソリューション内のすべてのコンピューター (物理および仮想) のネットワーク アダプターが、最大伝送単位 (MTU) に同じ値を使用するように構成されていることを確認します。 MTU 値の構成の詳細については、「 付録 A: TCP/IP 構成パラメーター」を参照してください。 出力キューの長さが 2 つ以上の場合は、仮想マシンをホストする物理コンピューターに 1 つ以上の物理ネットワーク アダプターを追加し、ゲスト オペレーティング システムで使用されるネットワーク アダプターをこれらの物理ネットワーク アダプターにバインドすることを検討してください。 |
ゲスト オペレーティング システムでのネットワーク使用率を測定する | Hyper-V ルート パーティション上のネットワーク アダプターが前述のパフォーマンス モニター カウンターで示されているようにビジー状態の場合は、"\Hyper-V Virtual Network Adapter(*)\Bytes/sec" パフォーマンス モニター カウンターを使用して、最も多くのネットワーク使用率を消費している仮想ネットワーク アダプターを特定することを検討してください。 |
ネットワーク パフォーマンス分析の詳細については、「 第 15 章 - .NET アプリケーションパフォーマンスの測定」を参照してください。
プロセッサパフォーマンスの測定
Hyper-V 仮想マシンにインストールされているゲスト オペレーティング システムのプロセッサ パフォーマンスを評価するには、次の方法を使用します。
ゲスト オペレーティング システムのプロセッサ使用率を測定する - 従来、プロセッサのパフォーマンスは、"\Processor(*)\% Processor Time" パフォーマンス モニター カウンターを使用して測定できます。 これは、ゲスト オペレーティング システムのプロセッサ使用率を評価するための正確なカウンターではありませんが、Hyper-V は仮想マシンに割り当てられたプロセッサの数に対してこの値を測定して報告するためです。 実行中の仮想マシンに割り当てられているプロセッサが物理コンピューターに実際に存在する数よりも多い場合、実際のプロセッサ使用率がボトルネックである場合でも、各ゲスト オペレーティング システムによって "\Processor(*)\% Processor Time" パフォーマンス モニター カウンターに対して返される値は低くなります。 これは、仮想プロセッサがラウンドロビン方式で物理プロセッサを利用するためです。 各仮想プロセッサはシステム リソース全体の共有を試みて割り当てるので、4 つの物理プロセッサ システムでは、各仮想プロセッサは既定でシステム リソースの 25% を利用しようとします。 8 つの仮想プロセッサが作成された場合、これは、仮想プロセッサ全体でサーバーの CPU 容量の 200% の利用を試みることを意味します。 この場合、各仮想プロセッサは、"\Processor(*)\% Processor Time" パフォーマンス モニター カウンター (想定されるレベルに対して) によって測定される使用率が低く、仮想プロセッサ間の過剰なコンテキスト切り替えによって、各仮想マシンのパフォーマンスが低下します。 このシナリオでは、ホスト オペレーティング システム上の Hyper-V 仮想マシンに割り当てられる仮想プロセッサの数を減らすことを検討してください。Hyper-V には、論理プロセッサと仮想プロセッサの両方のパフォーマンスを監視するハイパーバイザー パフォーマンス オブジェクトが用意されています。 論理プロセッサは、物理コンピューターにインストールされているプロセッサまたはコアの数に直接関連付けます。 たとえば、物理コンピューターにインストールされている 2 つのクアッド コア プロセッサは、8 つの論理プロセッサに関連付けます。 仮想プロセッサは仮想マシンが実際に使用するものです。ルートパーティションと子パーティション内のすべての実行は仮想プロセッサで実行されます。
Hyper-V には、論理プロセッサと仮想プロセッサの両方のパフォーマンスを監視するハイパーバイザー パフォーマンス オブジェクトが用意されています。 論理プロセッサは、物理コンピューターにインストールされているプロセッサまたはコアの数に直接関連付けます。 たとえば、物理コンピューターにインストールされている 2 つのクアッド コア プロセッサは、8 つの論理プロセッサに関連付けます。 仮想プロセッサは仮想マシンが実際に使用するものです。ルートパーティションと子パーティション内のすべての実行は仮想プロセッサで実行されます。
ゲスト オペレーティング システムのプロセッサ使用率を正確に測定するには、Hyper-V ホスト オペレーティング システムの "Hyper-V ハイパーバイザー論理プロセッサ (_Total)% 合計実行時間" パフォーマンス モニター カウンターを使用します。 "Hyper-V ハイパーバイザー論理プロセッサ (_Total)% 合計実行時間" パフォーマンス モニター カウンターを使用してゲスト オペレーティング システム プロセッサの使用率を評価するには、次のしきい値を使用します。
60% 未満を消費 = 正常
60% - 89% 消費 = モニターまたは注意
90% - 100% 消費 = 重大、パフォーマンスが悪影響を受ける
Hyper-V 環境でのゲスト オペレーティング システムのプロセッサ パフォーマンスをトラブルシューティングするには、ホスト オペレーティング システムによって報告される "\Hyper-V ハイパーバイザー論理プロセッサ (_Total)\% 合計実行時間" (LPTR) と "\Hyper-V ハイパーバイザー仮想プロセッサ (_Total)\% 合計実行時間" (VPTR) の間のバランスを取る必要があります。 LPTR が高く、VPTR が低い場合は、仮想マシンに割り当てられているプロセッサが、物理コンピューターで物理的に使用可能な数よりも多くないことを確認します。 "\Hyper-V ハイパーバイザー仮想プロセッサ(*)\%ゲストランタイム" カウンターを使用して、CPU を消費している仮想プロセッサを特定し、仮想プロセッサを仮想プロセッサから論理プロセッサへの 1 つのマッピングに構成するために必要に応じて仮想プロセッサを割り当て解除します。 仮想プロセッサから論理プロセッサへの 1 対 1 のマッピングの構成の詳細については、「 チェックリスト: Hyper-V でのパフォーマンスの最適化」の「プロセッサ パフォーマンスの最適化」セクションを参照してください。 VPTR が高く、LPTR が低い場合は、使用可能な論理プロセッサがあり、ゲスト オペレーティング システムで追加のプロセッサがサポートされている場合は、仮想マシンに追加のプロセッサを割り当てることを検討してください。 VPTR が高い場合、LPTR が低く、割り当て可能な論理プロセッサがありますが、ゲスト オペレーティング システムでは追加のプロセッサがサポートされていません。物理コンピューターに仮想マシンを追加し、これらの仮想マシンに使用可能なプロセッサを割り当てることによってスケールアウトすることを検討してください。 VPTR と LPTR の両方が高い場合、構成によって物理コンピューターの制限がプッシュされるため、別の物理コンピューターと追加の Hyper-V 仮想マシンを環境に追加してスケールアウトすることを検討する必要があります。 次のフローチャートでは、Hyper-V 環境でプロセッサのパフォーマンスをトラブルシューティングするときに使用する必要があるプロセスについて説明します。
VPTR が高く、LPTR が低い場合は、使用可能な論理プロセッサがある場合、およびゲスト オペレーティング システムで追加のプロセッサがサポートされている場合は、仮想マシンに追加のプロセッサを割り当てることを検討してください。 VPTR が高い場合、LPTR が低く、割り当て可能な論理プロセッサがありますが、ゲスト オペレーティング システムでは追加のプロセッサがサポートされていません。物理コンピューターに仮想マシンを追加し、これらの仮想マシンに使用可能なプロセッサを割り当てることによってスケールアウトすることを検討してください。 VPTR と LPTR の両方が高い場合、構成によって物理コンピューターの制限がプッシュされるため、別の物理コンピューターと追加の Hyper-V 仮想マシンを環境に追加してスケールアウトすることを検討する必要があります。 次のフローチャートでは、Hyper-V 環境でプロセッサのパフォーマンスをトラブルシューティングするときに使用する必要があるプロセスについて説明します。
の CPU パフォーマンスのトラブルシューティングHyper-V 環境での CPU パフォーマンスのトラブルシューティング
Note
ゲスト オペレーティング システム プロセッサには、物理プロセッサ/コアに対するアフィニティが設定されていません 。ハイパーバイザーによって、物理リソースの使用方法が決まります。 プロセッサ使用率の場合、ハイパーバイザーはゲスト プロセッサの時間をスレッドの形式で物理プロセッサにスケジュールします。 これは、仮想マシンのプロセッサ負荷が物理コンピューターのプロセッサ全体に分散されることを意味します。 さらに、仮想マシンは、構成された数の論理プロセッサのプロセッサ使用率を超えることはできません。たとえば、8 つのプロセッサ/コアを持つ物理コンピューターで 2 つの論理プロセッサで実行するように 1 つの仮想マシンが構成されている場合、仮想マシンは構成された論理プロセッサの数 (この場合は 2 プロセッサ) のプロセッサ容量を超えることはできません。
Hyper-V パフォーマンス モニター カウンターを使用して Hyper-V 環境のプロセッサ全体の使用率を測定する - プロセッサ使用率を測定するために、ホスト オペレーティング システムは論理的には別のゲスト オペレーティング システムと見なされます。 したがって、"\Processor(*)\% Processor Time" モニター カウンターは、ホスト オペレーティング システムのプロセッサ使用率のみを測定します。 ホスト オペレーティング システムとすべてのゲスト オペレーティング システムの物理プロセッサ使用率の合計を測定するには、"\Hyper-V Hypervisor Logical Processor(_Total)\% Total Run Time" パフォーマンス モニター カウンターを使用します。 このカウンターは、ホスト オペレーティング システムとすべてのゲスト オペレーティング システムの両方を実行しているプロセッサが費やした時間の合計割合を測定します。
"\Hyper-V Hypervisor Logical Processor(_Total)\% Total Run Time" パフォーマンス モニター カウンターを使用して、Hyper-V 環境のプロセッサ全体の使用率を評価するには、次のしきい値を使用します。
60% 未満を消費 = 正常
60% - 89% 消費 = モニターまたは注意
90% - 100% 消費 = 重大、パフォーマンスが悪影響を受ける
プロセッサ使用率の詳細については、次のリソースを参照してください。