NutaNice Xperience

主にNutanix製品を検証したり触ったりした結果をつづっています。※このブログの内容は個人の見識や見解をもとに作成しています。参考にされる場合は自己責任でご活用ください。実際に製品を使用される場合は、メーカードキュメントの手順に従い実施してください。

Windowsパフォーマンスモニター(Perfmon)でNutanixのVMのホスト固有のメトリック監視してみる -Nutanix AOS 6.1の新機能

2022年2月24日に新しいAOSのSTSバージョンであるAOS 6.1がリリースされました。今回は新機能の1つとして、Windowsパフォーマンスモニター(Perfmon)から、VMのホスト固有のメトリック監視をしてみました。

この新機能では、対象Windows VMへのNutanix Guest Tools(NTG)のインストールすることで、CVMからハイパーバイザーに関連したVM固有のNGTメトリックを収集することができるようになります。

目次

1. 今回の環境

Platform: NX-1365-G5
AOS: 6.1 STS
AHV: 20201105.30142
VM1: WS2019-test02(Windows Server 2019)

2. Nutanix Guest Toolsのインストール

Prism Elementの仮想マシン画面から、今回対象とするWindows VMへNutanix Guest Tools(NGT)をマウントします。SSRやスナップショットは使用しないので今回はチェックを外しておきます。
f:id:tomomartin:20220303215419p:plain

WindowsゲストOSのCDドライブにNGTがマウントされているので、インストーラーを実行します。
f:id:tomomartin:20220303215530p:plain

ライセンスの同意にチェックを入れて「Install」をクリックします。
f:id:tomomartin:20220303215645p:plain

インストールが完了したら「Close」をクリックして閉じます。
f:id:tomomartin:20220303215754p:plain

これで、NGTのインストールは完了です。

3. ゲストOSでのメトリック収集の有効化

NGTインストール後、ゲストOSの以下フォルダ配下にあるスクリプトファイルを実行して、CLIツール(ngtcli)を起動します。
f:id:tomomartin:20220303220815p:plain

起動したngtcliで以下コマンドを実行します。

ncli> ngt set-gflag ngt_metrics_collection_enabled=True

これにより、NGTメトリック収集が有効になります。
f:id:tomomartin:20220303221052p:plain

有効化したら、タスクマネージャのサービスにて「Nutanix Guest Agent」サービスを「再起動」します。
f:id:tomomartin:20220303221233p:plain

これで、ゲストOSでのNGTメトリック収集の有効化は完了です。

4. Windowsパフォーマンスモニターで監視

続いて、Windowsパフォーマンスモニター(Perfmon)を起動します。ゲストOSデスクトップのタスクバーの検索から「perfmon」と入力してパフォーマンスモニターを起動します。
f:id:tomomartin:20220303221605p:plain

パフォーマンスモニターが起動したら、ツリーメニューから「パフォーマンスモニター」を選択して、追加(+)ボタンをクリックします。
f:id:tomomartin:20220303221828p:plain

「カウンターの追加」のポップアップウインドウで、「NGT Metrics」を選択し、今回はデフォルトでCVMから収集される以下のカウンターを追加して「OK」をクリックします。

  • hypervisor_cpu_usage_ppm
  • hypervisor_cpu_ready_time_ppm

f:id:tomomartin:20220303222224p:plain

NGTメトリックのカウンターオブジェクトが追加されて、モニターに表示されるようになります。
f:id:tomomartin:20220303222425p:plain

5. 使い方の例

今回のデフォルト値として追加した以下2つのカウンターを使用する一例を紹介します。

  • hypervisor_cpu_usage_ppm
    VMがホストのCPUリソースを使用している時間の割合
  • hypervisor_cpu_ready_time_ppm
    CPU競合が発生し、VMがホストのCPUリソースを割り当ててもらえなかった時間の割合(stolen time)
5-1. ケース1 VMのCPU使用率が高いが、ホストのCPU使用率が低い場合

これは、特定のVMにCPU使用率90%を超える負荷がかかっているが、ホストの他のVMのCPU使用率は低いため、ホスト自体のCPUには十分な余裕がある状態です。

この場合は、以下パフォーマンスモニターのように、VMのCPU使用率(赤線)は90%を超えているがホストからそのVMへ割り当てられているCPUリソース時間の割合(青線)も90%以上の値でありCPU競合によるstolen time(緑線)も全く発生していないことが分かります。つまり、対象のVMは十分にホストのCPUリソースを使えているということです。
f:id:tomomartin:20220303224226p:plain

5-2. ケース2 VMのCPU使用率が高く、ホストのCPU使用率も高い場合

ケース1に対して、対象のVMのCPU使用率だけでなく、ホストの他のVMのCPU使用率も高いために、ホスト自体のCPUに高負荷がかかっている場合を再現してみます。

この場合は、以下パフォーマンスモニターのように、VMのCPU使用率(赤線)は90%を超えているがホストからそのVMへ割り当てられているCPUリソース時間の割合(青線)は70%程度に低下しておりその分CPU競合によるstolen timeの割合(緑線)が20%程度上昇していることが分かります。つまり、対象のVMはCPU競合により十分にホストのCPUリソースが使えていないことが分かります。
f:id:tomomartin:20220303225425p:plain

このように、NGTメトリックのカウンターをWindows VMのパフォーマンスモニターで使用すると、ホストからどれだけのリソースが割り当てられているかや、ホストにリアルタイムで高負荷がかかっているといったことをVMのOS管理者レベルで確認することができるようになります。

気になる方はぜひ一度触ってみては。

6. 要件や制限事項

  • Nutanix Guest Toolsのインストールが必要です
  • NGTのCPUメトリックの単位はppm(Parts per Milion)=百万分率であるため、パフォーマンスモニターで%表示させるためには、デフォルトスケールの値を1→0.0001へ変更する必要があります(1万分の1にする)。

要件等の詳細は、以下ドキュメントをご参照ください。

7. 参考資料