【PowerShell】仮想マシンのリソース使用量を計測する

※この投稿は、PowerShell Adcent Calender 2012 に参加しています! Hyper-V 上の仮想マシンが使用しているリソースを計測するにはパフォーマンスモニターを使用することができました。 Measuring Performance on Hyper-V http://technet.microsoft.com/ja-jp/library/cc768535(v=bts.10).aspx しかし、パフォーマンスモニターの利用になれた方であればまだしも、通常は使用するカウンターの選定など、ちょっと面倒な面も否めません。 そこで、Windows Server 2012、Windows 8 に実装されている Hyper-V では、ゲスト OS のリソース使用量を容易に計測できる Windows PowerShell コマンドレットが用意されました。Measure-VM です。 パフォーマンスモニターが仮想マシンの正常性を計測することを主目的としていたのに対し、このコマンドレットの主な目的は「課金」です。例えば、ホスティングを担当する企業による利用を想定しています。 Measure-VM コマンドレットを使用すると以下の数値を取得することができます。 CPUの平均使用量(MHz) メモリの平均使用量(MB) メモリの最大使用量(MB) メモリの最少使用量(MB) ネットワーク(送信)の総使用量(MB) ネットワーク(受信)の総使用量(MB) ディスクの使用量(MB) ここで、CPUの「使用率」ではなく「使用量」であることに注意してください。先にも書いた通り、Mesure-VM の主目的は「課金」です。よって、CPU の使用率では意味がありません。なぜならば、使用している物理マシンによって使用率が変わる可能性が大きいからです。よって、Mesure-VM は使用率ではなく実際にゲスト OS が使用した CPU の使用量を MHz で出力するように設計されています。 ネットワークについても同様です。帯域の使用率ではなく、実際に送受信したデータ量を算出してることに注意してください。 いずれも、計測を開始してから Measure-VM コマンドレットを実行した瞬間までを計測します。 では使ってみましょう。 <計測開始> 計測を開始するには、ゲストOS のメータリング機能を有効にする必要があります。以下はゲストOS Server1…