MachineQIIMEリリース情報メモリバルーニング(メモリの動的追加)仮想マシンのメモリ割り当てを増減させる場合、通常は仮想マシンを停止した上で行わなければなりません。これを仮想マシンを起動したまま、動的にメモリの割当を変更するするのがメモリバルーニング(動的追加)です。「日中は仮想マシンのアプリサーバにメモリを多く割り当て、夜間のバッチ時間帯にはそのメモリを今度はバッチサーバにメモリを割り当てる」このようなメモリの動的追加を行って、限られた物理メモリの有効活用を行うといった事は、エンタープライズサーバー環境ではよく行われています。バージョン3.2からこの機能が実装されました。メモリバルーニングの条件このような便利なメモリーバルーニングですが、この機能を使うには以下の条件を満たしておく必要があります。Additionsが、ゲストOSに割り当てられた物理メモリのアクセスを制限します。これにより、ゲストOSはそのメモリ領域を使用することがなくなり、VirtualBoxのメモリバルーニング機能はこのメモリ領域を再使用し、別の仮想マシンに与えることができます。このようにVirtualBoxのメモリバルーニング機能は、ゲストOS同士でメモリを融通することができます。注意すべきは、融通するメモリ領域はバルーニングメカニズムを介してVirtualBoxで再使用可能なだけで、ホストOSへの空きメモリとして返されることはありません。実行中のゲストからメモリバルーニングでメモリ割り当てを減らしても、ホストOS上の空きメモリ量は増えません。ゲストOS同士でのみ、空きメモリを融通する事ができます。メモリバルーニングの実行メモリバルーニングによるメモリの増減の実行は、VBoxmanageコマンドで行います。<n><n>の部分はメモリ割り当てをメガバイト単位で指定します。crontrolvmオプションでは再起動すると設定が消えてしまうので、永続的に設定を行う場合にはmodifyvmコマンドを実行します。<n>メモリバルーニングのテストさて、では実際にメモリバルーニングのテストを行ってみます。用意したゲストOSは、OSがWindowsXPで割り当てメモリが768MBのゲストマシンです。起動後、十分にアイドルになるまで放置した時のタスクマネージャーの状況が以下になります。コマンドでバルーニングの状況が確認できます。r73507現状を把握したところで、メモリバルーニングを行ってみます。試しに512MBを設定してみます。512すると仮想マシンのページファイルの使用量が跳ね上がり、タスクマネージャーが以下のようになりました。バルーニングの状況も確認してみます。sizeが512MB増えました。状況をまとめると以下のようになります。タスクマネージャーの仮想メモリの合計や、システムのプロパティでみるOSが認識してるメモリサイズには変更がありませんでした。なり、利用可能な空きメモリが約484MB分減りました。なり、ページファイルが約489MB増えるました。上記から、メモリバルーニングで減った仮想メモリ分の領域をページファイルから補完し、OSからみた仮想メモリの量に変化が無いようにしている?と考えられますが、ホントのところはどうなんでしょう。詳しい方がいたら教えて下さい。バルーニングしたメモリの割り当て方がわからないと、ここでバルーニングして余ったメモリを別の仮想マシンに割り当てようとしたのですが、やり方がよくわかりませんでした。guestmemoryballoonオプションに-(マイナス)で指定すればメモリを増やすことができるのかとおもいきや、エラーで怒られました。英文のマニュアルを読んでも特に記述がなく、他になにかオプションがあるのか、別のコマンドを使うのか。現状では仮想マシンからメモリを剥ぎ取るしか出来ない状況です(笑)やり方をご存じの方がいましたら、教えていただけませんか。