ここまでの作業を行ったところで、まずはWindows Server 2008 R2が動作する仮想マシンを立ち上げて、RAM消費量を確認してみた。RAM消費量というのは時々刻々と変動するものではあるが、設定の目安となる概略の値は知っておく必要がある。

Windows Server 2008 R2をセットアップした仮想マシンのRAM消費量を、タスクマネージャで確認

おおむね500MBぐらいあれば十分そうだな、とあたりをつけたところで、いったん仮想マシンをシャットダウンする。その仮想マシンの設定画面で、スタートアップRAMとRAM割当量の上限を、それぞれ550MBと1,536MBに設定した。

仮想マシンに対して、スタートアップRAMとRAM割当量の上限を別々に指定する。デフォルトの値でもHyper-V側で割り当てを調整してくれるが、上限は物理的に利用可能な値の範囲内にしたほうがよいだろう

拙宅の実験機には4GBのRAMを搭載しているから、ペアレントOSで使用する分を考慮に入れると、指定可能な上限は現実的にみて3GBぐらいだろうか。しかし、それでは他の仮想マシンが動かなくなってしまうので、ここでは1,536MB(=1.5GB)にしてみた。

この作業を、自分が使用する複数の仮想マシンに対して繰り返すことで、すべての仮想マシンでDynamic Memoryを利用できるようになり、かつ、起動時に割り当てるRAMの量を抑え込むことができる。

たとえば、従来は1.5GBずつ割り当てていたとすれば、4GBのRAMを搭載している手元の実験機では、同時に2台の仮想マシンしか動かせない。しかし、スタートアップRAMを512MBずつに減らせば、もっと多くの仮想マシンを同時並行的に稼働させることができる。その一例が以下の画面だ。[Hyper-Vマネージャ]の画面でお分かりの通り、起動した仮想マシンはいずれも、512MBずつのRAMの割り当てを受けて動作している。

スタートアップRAMを512MB設定した仮想マシンを、同時に3つ実行させた状態での[Hyper-Vマネージャ]管理ツール。割り当てたRAMの量は[メモリ割り当て]の列で確認できる

当初に割り当てたスタートアップRAMで事足りるのであれば、このまま推移する。しかし、RAMの需要が増えたときには、Dynamic Memory機能によってRAMの割り当てを増やしてくれるし、その後で需要が減ればRAMの割り当てを減らして調整するというわけだ。

便利な機能だが、頼りすぎは禁物

Dynamic Memoryを活用することで、同じハード構成のままで同時に稼動させる仮想マシンの数を増やせる可能性がでてくる。ただし注意しなければならないのは、同時に稼動する仮想マシンの負荷推移である。つまり、複数の仮想マシンで同時に負荷が上昇してRAMの割当量を増やす必要が生じた場合、結局はRAMの奪い合いになってしまう可能性があるはずだ。

Dynamic Memoryでは、一定割合の物理RAMを常に確保しておいて、要求があったときに割り当てる仕組みになっている(既定値では20%。仮想マシンの設定画面にある[メモリバッファ]の項で比率を指定できる)。また、仮想マシンごとにRAM割り当ての優先度を指定できるので、奪い合いが発生したときには、重要度が高い仮想マシンに対して優先的にRAMを割り当てることで、パフォーマンスの低下を局限できる。

とはいうものの、最大RAM割当量の合計が物理RAM搭載量を上回る状態で稼動を続ければ、物理RAMの奪い合いと、それに起因するパフォーマンスの低下に見舞われるリスクは残る。物理RAM以上の事を要求するのではなく、搭載した物理RAMを最大限活用するという視点でうまく利用すると、今までよりもはるかに柔軟に仮想マシンを使えるようになるはずだ。もしも、より多くの仮想マシンを動かしたいなら、物理RAMの増設を検討する方が良いだろう。それもまた、物理PCを追加する必要が無いという仮想化のメリットなのだから。