IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

Hyper-V の部屋

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第21回 PowerShellからリソース消費状況を確認する (小塚大介) 2016年3月

前回に引き続き、PowerShell を使った Hyper-V の操作について書いていきます。今回は PowerShell を使って仮想マシンのリソース消費量を把握する方法です。

Hyper-V のリソース メータリング機能を利用する

Hyper-V上で動作する仮想マシンのリソース消費量を把握する方法にはいくつかあります。たとえば、仮想マシンの操作に利用している Hyper-V マネージャーでは、仮想マシン毎のCPUの使用率をリアルタイムに表示することができますし、Windows Server に標準搭載されているパフォーマンス モニターを利用することで詳細な仮想マシンのリソース消費量を表示/取得することができます。

そして今回紹介するのは、Hyper-V が持つリソース メータリング機能です。この機能を利用することで、PowerShell を使って、仮想マシンが消費したCPUのクロック数やメモリの使用率、仮想ハードディスクのIO数、ネットワークのデータ転送量などを表示することが可能です。

※リソースメータリングの公式なドキュメントはこちら (https://technet.microsoft.com/ja-jp/library/hh831661.aspx) です

Enable-VMResourceMetering コマンドで情報の記録を開始する

それでは実際に使ってみましょう。まず Windows PowerShell を管理者として開きます。

fig01

次に、仮想マシンに対してリソース消費量の計測を有効化します。これは Enable-VMResourceMetering コマンドを利用します。特定の仮想マシンのみ有効化する場合は -VMName オプションを使って指定します。

fig02

-VMName オプションに * を利用することで、すべての仮想マシンに対して有効化することも可能です。

fig03

この Enable-VMResourceMetering コマンドを実行した瞬間から仮想マシンのリソース消費に関する情報の記録が始まるため、情報が必要になった場合にはこのコマンドを実行するところから始めるとよいでしょう。

Measure-VM コマンドでリソース消費の情報を表示する

次に Measure-VM コマンドを使って仮想マシンのリソース消費の状態を表示します。Measure-VM コマンドも -VMName オプションで特定の仮想マシンのみの情報に絞ることが可能ですし、*を指定することですべての仮想マシンの情報を表示することができます。

fig04

ここでは以下の情報が表示されています。
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 など、仮想マシンがどれくらいハードディスクから読み書きしたかを把握するための情報も含まれています。

fig05

このように、PowerShell のコマンドを工夫することで仮想マシン名とIOPSの値のテーブルなど、任意のデータを任意の形で表示することができ、コマンドの結果をファイルに出力することも可能です。

fig06

Reset-VMMetering コマンドを実行して記録した情報をクリアする

Measure-VMコマンドは Enable-VMResourceMetering コマンドを使って情報取得を有効化した時点からのリソース消費状況を表示します。Measure-VM コマンドの結果を List 形式で表示した場合、 MeteringDuration というプロパティが表示され、Measure-VM コマンドで表示したデータの対象時間範囲を確認することができます。(以下のスクリーンショットでは、過去20秒間の情報を表示していることが分かります)

fig07

この情報を一度リセットしたい場合は Reset-VMResourceMetering コマンドを実行します。このコマンドも -VMName オプションを使って特定の仮想マシンに限定したり、 * を使ってすべての仮想マシンを対象にしたりすることが可能です。

fig08

Disable-VMResourceMetering コマンドで情報の記録を終了する

最後にリソース消費状況の情報取得を停止します。停止するには Disable-VMResourceMetering コマンドを利用します。このコマンドもほかのコマンドと同様に -VMName オプションを使って対象の仮想マシンを限定したり、* ですべての仮想マシンに対して一括で処理をすることが可能です。

fig09

ちょっとした情報取得は PowerShell でスマートに

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