CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
前回に引き続き、PowerShell を使った Hyper-V の操作について書いていきます。今回は PowerShell を使って仮想マシンのリソース消費量を把握する方法です。
Hyper-V上で動作する仮想マシンのリソース消費量を把握する方法にはいくつかあります。たとえば、仮想マシンの操作に利用している Hyper-V マネージャーでは、仮想マシン毎のCPUの使用率をリアルタイムに表示することができますし、Windows Server に標準搭載されているパフォーマンス モニターを利用することで詳細な仮想マシンのリソース消費量を表示/取得することができます。
そして今回紹介するのは、Hyper-V が持つリソース メータリング機能です。この機能を利用することで、PowerShell を使って、仮想マシンが消費したCPUのクロック数やメモリの使用率、仮想ハードディスクのIO数、ネットワークのデータ転送量などを表示することが可能です。
※リソースメータリングの公式なドキュメントはこちら (https://technet.microsoft.com/ja-jp/library/hh831661.aspx) です
それでは実際に使ってみましょう。まず Windows PowerShell を管理者として開きます。
次に、仮想マシンに対してリソース消費量の計測を有効化します。これは Enable-VMResourceMetering コマンドを利用します。特定の仮想マシンのみ有効化する場合は -VMName オプションを使って指定します。
-VMName オプションに * を利用することで、すべての仮想マシンに対して有効化することも可能です。
この Enable-VMResourceMetering コマンドを実行した瞬間から仮想マシンのリソース消費に関する情報の記録が始まるため、情報が必要になった場合にはこのコマンドを実行するところから始めるとよいでしょう。
次に Measure-VM コマンドを使って仮想マシンのリソース消費の状態を表示します。Measure-VM コマンドも -VMName オプションで特定の仮想マシンのみの情報に絞ることが可能ですし、*を指定することですべての仮想マシンの情報を表示することができます。
ここでは以下の情報が表示されています。
VMName : 仮想マシン名
AvgCPU(MHz) : 仮想マシンが利用したCPUの平均クロック数 (MHz)
AvgRAM(M) : 仮想マシンに割り当てたメモリの平均値 (Mbytes)
MaxRAM(M) : 仮想マシンに割り当てたメモリの最大値 (Mbytes)
MinRAM(M) : 仮想マシンに割り当てたメモリの最小値 (Mbytes)
TotalDisk(M) : 仮想マシンにアタッチしている仮想HDDの合計サイズ (Mbytes)
NetworkInbound(M) : ネットワーク受信データ量 (Mbytes)
NetworkOutbound(M) : ネットワーク送信データ量 (Mbytes)
さらに PowerShellのパイプラインを使って結果をリスト形式で表示することで、追加のプロパティも表示することができます。この中には AggregatedAverageNormalizedIOPS など、仮想マシンがどれくらいハードディスクから読み書きしたかを把握するための情報も含まれています。
このように、PowerShell のコマンドを工夫することで仮想マシン名とIOPSの値のテーブルなど、任意のデータを任意の形で表示することができ、コマンドの結果をファイルに出力することも可能です。
Measure-VMコマンドは Enable-VMResourceMetering コマンドを使って情報取得を有効化した時点からのリソース消費状況を表示します。Measure-VM コマンドの結果を List 形式で表示した場合、 MeteringDuration というプロパティが表示され、Measure-VM コマンドで表示したデータの対象時間範囲を確認することができます。(以下のスクリーンショットでは、過去20秒間の情報を表示していることが分かります)
この情報を一度リセットしたい場合は Reset-VMResourceMetering コマンドを実行します。このコマンドも -VMName オプションを使って特定の仮想マシンに限定したり、 * を使ってすべての仮想マシンを対象にしたりすることが可能です。
最後にリソース消費状況の情報取得を停止します。停止するには Disable-VMResourceMetering コマンドを利用します。このコマンドもほかのコマンドと同様に -VMName オプションを使って対象の仮想マシンを限定したり、* ですべての仮想マシンに対して一括で処理をすることが可能です。
PowerShell を利用したHyper-Vのリソース消費データの取得と表示方法の解説は以上です。
仮想化環境の運用時、CPUやメモリ、DISKに関する情報が必要であれば パフォーマンス モニターを起動するよりも PowerShell のほうが簡単かもしれません。是非この方法も覚えておきましょう!
※今回の情報を含め、PowerShell でのリソース メータリングの使用方法はこちら (http://blogs.technet.com/b/virtualization/archive/2012/08/20/how-to-use-resource-metering-with-powershell.aspx)
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes