ハードウェア仮想化の主な利点には、論理的な分離と合理的なリソースの利用が含まれます。Microsoft Hyper-Vを使用する際には、仮想マシンと物理的なHyper-Vサーバーのハードウェアリソースの使用状況を監視することが重要です。VMに割り当てられたリソースが不足しているか、あるいは過剰に割り当てられている場合、VMのパフォーマンスの低下や他のVMおよび環境全体のパフォーマンスへの影響が発生する可能性があります。このブログ投稿では、Hyper-Vのモニタリングのヒントと、無料で利用可能なネイティブのHyper-Vモニタリングツールについて説明します。
Hyper-Vパフォーマンスモニタリングが必要な理由
Hyper-Vリソースモニタリングを行うことで、ボトルネックを検出し、リソースを管理してパフォーマンスを最適化できます。Hyper-Vパフォーマンスを監視することで、リソースに関する統計情報を表示し、現在のHyper-Vホストにより多くのリソースを供給するか、VM上のソフトウェアを再構成するか、VMを別のHyper-Vホストに移行するかなどの決定を支援します。なお、Hyper-VホストのモニタリングにはSNMP(Simple Network Management Protocol)は廃止されています。
VMのパフォーマンスが低い場合、次の質問を使用して可能な原因を絞り込みます:
- Hyper-Vホストで実行されているVMに割り当てられたリソースは十分ですか?
- Hyper-Vホストに十分な空きハードウェアリソースがありますか?
- パフォーマンスの問題は1つのVMに存在しますか、それとも複数のVMに存在しますか?
幸いなことに、Hyper-VにはGUIから始まるパフォーマンスとリソース消費を監視するための無料のネイティブツールがいくつか用意されています。Hyper-Vホスト間でVMの移行を自動化したい場合は、クラスタ内でこれを行うための基本的な機能があります。負荷分散。Hyper-Vクラスタを使用する場合は、Hyper-Vサーバーのリソース使用率を最適化し、負荷分散を行うために、VMを自動的に移行するための有料ソリューションであるSCVMM(System Center Virtual Machine Manager)が必要です。Hyper-Vレプリケーションの監視もSCVMMで行うことができます。
Windowsタスクマネージャを使用してVM内のリソースを監視しないでください
タスクマネージャを開くことは、Windowsを実行する物理コンピューターのパフォーマンスとリソース使用状況を表示する迅速で簡単な方法です。ただし、Windowsタスクマネージャーを使用してVM内のパフォーマンスを監視しないでください。Windowsタスクマネージャーは、仮想マシンによるCPUとメモリの実際の使用状況を表示しません。これは、タスクマネージャーがマシンを仮想的として識別せず、どのようにリソースがVMに提供されているかを知らないためです。タスクマネージャーを使用して実行中のプロセス、サービス、およびアプリケーションを監視しますが、VM内のパフォーマンスを監視しないでください。
Hyper-Vホストでパフォーマンスモニターを使用する
Hyper-Vホスト上でパフォーマンスモニター(perfmon)を使用し、プロセッサー、メモリ、インタフェース、物理ディスク、およびその他のハードウェアの利用状況を監視するための適切なカウンターを使用します。パフォーマンストラブルシューティングには、Windowsシステムで広く使用されているperfmonユーティリティが使用されます。
perfmonを「実行」ダイアログボックスで実行するか、コンピュータの管理ウィンドウでパフォーマンスモニタを見つけ、必要なカウンタを追加し、グラフィカルユーザインターフェース(GUI)で統計情報を監視します。収集された情報はチャート、グラフ、および図として表示できます。
また、Hyper-Vホスト(resmon.exe)でリソースモニタを開くのも便利です。
Hyper-V用のカウンタの使用
パフォーマンスモニタは、Hyper-Vホスト上で実行されている仮想マシンに対して誤った情報を提供する場合があります。なぜなら、標準(通常)のカウンタはVMの監視に適応されていないからです。Hyper-Vを実行している物理コンピュータには4つのコアを持つプロセッサがあり、Hyper-Vホストには2つのVMが存在しています。最初のVMには4つの仮想プロセッサが割り当てられています。最初のVMで100%の負荷をかけるアプリケーションが実行され、物理的なHyper-Vホストのプロセッサリソースをすべて消費します。
同時に、同じ構成の仮想デバイスを持ち、同じアプリケーションを実行するこのHyper-Vホスト上で2番目のVMを開始します。各仮想マシンのプロセッサが100%の負荷で動作しているという情報が表示されます。しかし、各VMのアプリケーションは、最初のVMが実行されている場合と比べて50%の速度で動作しています(VM内でタスクマネージャやパフォーマンスモニタを開くと確認できます)。動的メモリが有効になっている場合、メモリに関する情報も同様に表示されます。
Hyper-Vホスト上のパフォーマンスモニタでHyper-V固有のカウンタを使用して、このHyper-Vホストのリソースを監視します。Hyper-VカウンタはHyper-Vのパフォーマンスモニタリングに最も正確な情報を表示します。
プロセッサの性能
このカウンターを使用して、Hyper-Vホスト上の物理プロセッサのパフォーマンスを監視します:Hyper-V Hypervisor Logical Processor% Total Run Time
VMの仮想プロセッサのパフォーマンスを監視するためのカウンター: Hyper-V Hypervisor Virtual Processor% Guest Run Time
- カウンターが実行中のVMの値を75%以下に表示すると、最適なパフォーマンスが得られます。
- A value in the 75 – 85% range is a warning.
- 85%を超える値の場合、そのような高いCPU使用率の理由を調査することをお勧めします。
ルート仮想プロセッサの利用状況を監視するカウンター:\Hyper-V Hypervisor Root Virtual Processor(*)\% Total Run Time
メモリの利用状況
Hyper-Vの監視とRAMの使用量をチェックするための複数のカウンターがあります。
Hyper-Vホスト上のMemoryAvailable Mbytesカウンターはメモリの使用状況を監視するために使用されます。
- 空きRAMの10%以上 – 健康
- 空きRAMの10%未満 – 警告
- 空きRAMが100 MB未満 – 致命的
各VMに割り当てるメモリ量を定義するために、VMが使用するメモリ量をチェックするためにMemoryCommitted Bytesカウンターを使用します。
\Hyper-V Dynamic Memory Balancer\Average Pressureカウンターを使用してダイナミックメモリを監視します。
- 80%未満 – 健康
- 80%を超える – 警告
- 100% – 致命的
ディスクの待ち時間
LogicalDisk(*)\Average Disk Sec\Read or Writeカウンターを使用して、Hyper-Vで実行されているVMの全体的なパフォーマンスに重要なディスク待ち時間を監視します。
- <10 ms (0.010 s) – OK
- >15ms (0.015 s) – Warning
- >25 ms (0.025 s) – Critical
ネットワーキング
\Network Interface (*)\OutputQueue Length カウンターを使用して、ネットワーク使用状況を監視します。これは、出力パケットキュー内のネットワークパケットの数を測定します。
- 平均値が1未満 – 正常
- 平均値が1以上 – 警告
- 平均値が2以上 – 致命的
また、以下のカウンターを使用することも検討してください:
Network Interface (ネットワークアダプター名)\Bytes/sec
Hyper-V仮想ネットワークアダプター (仮想マシン名 )\Bytes/sec
VMに十分なメモリを提供する
各マシンには適切な動作に十分なメモリが必要です。それ以外の場合、パフォーマンスが低下し、スワップファイルが集中的に使用され、ディスクが過負荷になります。さらに、スワップファイルはRAMよりも遅く動作します。オペレーティングシステムとアプリケーションが物理メモリの約12 GBを消費する場合は、コンピュータに16 GBのRAMをインストールしてください。 VMのメモリ割り当てにも同じアプローチを使用してください。たとえば、VMで実行されているソフトウェアが6 GBのRAMを消費する場合は、VMに8 GBのRAMを提供してください。適切な動作のために追加のメモリを少なくとも20%提供することをお勧めします。追加のメモリをバッファとして提供することをお勧めします。
ログを監視するためにイベントビューアーを使用します
イベント ビューアーを使用して、Hyper-V ホストおよびゲスト VM のログを監視します。これはトラブルシューティングに役立ちます。システムイベントやアプリケーションイベントなどのログを表示して分析することで、問題を特定し、適切な解決策を見つけるのに役立ちます。イベント ビューアーは、アプリケーションに関連するエラーログを表示し、オペレーティング システムレベルで機能します。イベント ビューアーを開くには、まずコンピューター管理を開く必要があります。
Hyper-V のログは次の場所にあります:
イベント ビューアー > アプリケーションおよびサービス ログ > Microsoft > Windows
以下は、イベント ビューアー内の Hyper-V のログのカテゴリです:
- Hyper-V-Compute
- Hyper-V-Config
- Hyper-V-Guest-Drivers
- Hyper-V Hypervisor
- Hyper-V-StorageVSP
- Hyper-V-VID
- Hyper-V-VMMS
- Hyper-V-VmSwitch
- Hyper-V-Worker
コンピューター管理では、Windows サービスを管理できます。以下の Hyper-V サービスを監視することをお勧めします:
- Hyper-V イメージ管理サービス (vhdsvc)
- Hyper-V 仮想マシン管理 (vmms)
- Hyper-V ネットワーク管理サービス (nvspwmi)
PowerShell でリソースを監視する
PowerShell で Hyper-V ホストおよび仮想マシンのリソースを監視できます。これは GUI のない Windows OS で特に便利です。PowerShell でパフォーマンスを監視するための特別な cmdlet を使用してください。
Windows イベントログとやり取りして、Hyper-V の操作ログを表示します。
Get-WinEvent -LogName Microsoft-Windows-Hyper-V-Hypervisor-Operational | select -First 1 | Format-List *
このコマンドは、Hyper-VホストまたはゲストVM上のパフォーマンスカウンターオブジェクトとやり取りし、Windowsモニタリング機能を使用してリモートまたはローカルマシンからデータを直接取得することを可能にします。
Get-Counter
カウンターリストを取得し、表示された結果をソートします。
Get-Counter -ListSet * |
Sort-Object -Property CounterSetName |
Format-Table CounterSetName, CounterSetType -AutoSize
複数のマシン上で動作するディスクのパフォーマンスを監視します。
$DiskReads = “\LogicalDisk(C:)\Disk Reads/sec”
$DiskReads | Get-Counter -ComputerName Server01, Server02 -MaxSamples 10
PowerShellでHyper-Vパフォーマンスの監視用のカスタムスクリプトを作成できます。
結論
Hyper-V モニタリングを使用すると、VMのパフォーマンスの問題が Hyper-V ホストまたはゲスト VMに関連しているかどうかを判断できます。Hyper-V パフォーマンスモニタリングを使用すると、Hyper-V ホストのハードウェアリソース使用量を最適化できます。Windows タスク マネージャーなどのツールは、Hyper-V 上で実行されている VMのパフォーマンスを監視するために適していません。パフォーマンス モニターには、Hyper-V ホストと VM のリソースを監視するために採用された Hyper-V 固有のカウンターが含まれています。GUI を使用する場合は Hyper-V マネージャー、イベント ビューア、リソース モニターを使用でき、コマンド ライン インターフェイスを使用する場合は PowerShell の特別なコマンドを使用できます。
ネイティブ ツールの機能があなたには不十分な場合は、他の Hyper-V モニタリング ソフトウェアを試してみてください。モニタリングは Hyper-V パフォーマンスを最適化することができますが、データ損失から保護することはできません。信頼できる Hyper-V バックアップ ソフトウェアを検討してください。NAKIVOの無料エディションをダウンロードして、マルチプラットフォーム サポート、ランサムウェア復旧などを受けることができます。
Source:
https://www.nakivo.com/blog/tips-and-tools-for-microsoft-hyper-v-monitoring/