Dynamic Memory使用時に仮想マシンでは何がおきているのか

サービス開発者から見たWindows Server 2008 R2 Service Pack-Vol.4

GMO最新ネット業界レポート ソリューション編。『サービス開発者から見たWindows Server 2008 R2 Service Pack 1』とし、前回はWMIを使用しての「Reservation」の設定方法について説明。今回は、Dynamic Memory使用時に仮想マシンでは何がおきているのかについて、GMOインターネット株式会社 事業本部 樋口 勝一が執筆。

Dynamic Memory使用時に仮想マシンでは何がおきているのか

Hyper-Vのホストサーバー上で仮想マシンにDynamic Memoryの使用設定をした場合、仮想マシンではどのようなことが起こっているのでしょう。Dynamic Memoryの特徴は、予め設定した範囲内で仮想マシンに必要なときに必要なだけメモリを動的に割り当て、不要となった分のメモリを回収し再利用に備えるといったものです。

バルーニングが行われた場合の仮想マシンの状況

今回のデモも効果を分かりやすくするため以下の設定値としています。

  • 「スタートアップRAM」 16GB
  • 「最大RAM」 16GB
  • 「Reservation」 1GB

まずは上記設定で仮想マシンを起動します。

起動直後の仮想マシンのタスクマネージャーの状態(画像:4-02)

「スタートアップRAM」16GB ですので当然物理メモリは16GBとなっています。「利用可能」「空きメモリ」ともに十分すぎるほどの容量となっています。

起動後しばらくすると「Reservation」を1GBとしていますのでHyper-Vは使用していない分のメモリを残り1GBになるまで回収をおこないます(バルーニング)。このときのメモリ使用状況をタスクマネージャーで見て見ると急激にメモリ使用率が上昇したかのようなグラフとなります。

(画像:4-03)

グラフだけ見てみると、あたかも何かアプリケーションが起動して大量のメモリを消費したかのようなグラフとなりますが、「利用可能」「空きメモリ」も極端に少なくなっています。

注目すべきはタスクマネージャー最下部の「物理メモリ:97%」の部分です。 タスクマネージャーの「物理メモリの使用率の履歴」グラフが示すのはあくまでも物理メモリの使用率、パーセンテージです。バールーニング時にグラフが跳ね上がったのは “メモリ使用量が増えた” のではなく “メモリの使用率が増えた” ということです。 仮想マシンのメモリがバルーニングで回収されているので分母となる使用可能メモリ容量は当然少なくなります。その状況で仮想マシンのメモリ使用量自体は変わっていませんので当然使用率は上昇することになります。 その結果がタスクマネージャーのグラフとなるのです。

4-02 と 4-03 の画像の「利用可能」「空きメモリ」を見比べていただければその違いがはっきりと分かります。

また、タスクマネージャーの「物理メモリの使用率の履歴」グラフが示す値は「使用中のメモリ」 ÷ 「利用可能メモリ」の値、すなわち「物理メモリ:○○%」という数値となります。以上がバルーニングが行われた場合の仮想マシンの状況です。

ホットアドが行われた場合の仮想マシンの状況

次に、メモリが回収された後、仮想マシンでメモリが必要になった場合、Hyper-Vホストは必要分のメモリを仮想マシンに追加します(ホットアド)。

仮想マシン上でいくつかアプリケーションを起動しメモリをいくらか消費するようにしてみますと、必要なだけのメモリがリアルタイムで仮想マシンに追加されます。この動作は仮想マシンのメモリ設定で指定した「最大RAM」の値まで行います。メモリ使用率は効率的なメモリ割り当てが行われているため100%弱の値で推移することになります。

(画像:4-05)

メモリを使用したアプリケーションが終了すれば、再びバルーニングが行われ、メモリの効率使用が行われることになります。

Hyper-VのDynamic Memoryを使用した場合の注意事項

このように、仮想マシン上ではHyper-Vホストによりバルーニングとホットアドがリアルタイムで行われることで、効率的なメモリ資源配分を行うことが可能となります。

Hyper-Vホストのメモリ搭載容量には制限があります。このメモリ資源を効率的に配分し、不要メモリは時には他の仮想マシンに、時にはHyper-Vホスト自身に割り振ることで、より快適なサービス提供と安定したサービス提供を実現することができるようになります。

しかし気をつけなければいけないのは、Hyper-VのDynamic Memoryを使用した場合、仮想マシンを利用しているユーザーから見ると、タスクマネージャーではいつもメモリ使用率が高くメモリが足りないのではないか? といった懸念もあるかと思います。これは一般的なPCでは通常確認できない現象です。

ポイントは、タスクマネージャーのメモリ使用率のグラフではなく、あくまでも物理メモリの合計と利用可能メモリが仮想マシンユーザーのために用意されたメモリである、という点です。

Hyper-VのDynamic Memoryを使用してサービス提供を行う場合、このポイントをきちんとユーザーにアナウンスする必要があります。

以上3回にわたりサービス開発者から見たWindows Server 2008 R2 Service Pack 1について、特にDynamic Memoryにフォーカスをあててご紹介してきました。今後、お名前.com Windowsデスクトップ (http://www.onamae-desktop.com/)においても随時Dynamic Memoryの環境でのサービス提供が行われる予定です。

より快適なサービス提供と安定したサービス提供を目指してゆく所存ですので、ご期待ください。

*本文中に記載されている会社名および商品名・サービス名は、各社の商標 または登録商標です。

著書の紹介欄

Hyper-Vで本格的なサーバー仮想環境を構築。仮想環境を設定・操作できる!

できるPRO Windows Server 2016 Hyper-V

◇Hyper-Vのさまざまな機能がわかる ◇インストールからの操作手順を解説 ◇チェックポイントやレプリカも活用できる Windows Server 2016 Hyper-Vは、仮想化ソフトウェア基盤を提供する機能であり、クラウドの実現に不可欠のものです。 本書では、仮想化の基礎知識から、Hyper-Vでの仮想マシンや仮想スイッチの設定・操作、プライベートクラウドの構築、Azureとの連携などを解説します。

初めてのWindows Azure Pack本が発売

Windows Azure Pack プライベートクラウド構築ガイド

本書は、Windows Azure PackとHyper-Vを利用し、企業内IaaS(仮想マシン提供サービス)を構成するための、IT管理者に向けた手引書です。試用したサーバーは、最小限度の物理サーバーと仮想マシンで構成しています。Windows Azure Packに必要なコンポーネントのダウンロード、実際にプライベートクラウド構築する過程を、手順を追って解説しています。これからプライベートクラウドの構築を検討するうえで、作業負担の軽減に役立つ一冊です。

ブログの著者欄

樋口 勝一

GMOインターネット株式会社

1999年6月GMOインターネットに入社。Windows Serverをプラットフォームとしたサービス開発から運用・保守まで幅広く担当。講演登壇や出版、ネット記事連載などでマイクロソフト社と強い信頼関係を構築。2007年より「マイクロソフトMVPアワード」を受賞し、インターネットソリューションのスペシャリストとして活躍。

採用情報

関連記事