このページの本文へ移動

Dynamic Memory利用におけるホストメモリ容量の自動調整

~Windows Server 2008 R2 SP1 Beta版 検証の豆情報~

はじめに

Windows Server 2008 R2 SP1ではDynamic Memoryにより、仮想マシン(VM)のワークロードの変化に応じて、ホストと複数のVM間で動的に物理メモリの割り当て量を調整できます。

Dynamic Memory利用時のメモリサイジングでは、システム全体でのワークロードのピーク時におけるVMの総メモリ使用容量とホストで必要なメモリ容量をもとに、システムの物理メモリ容量を設計することになります。ただし、各VMのワークロードのピークのタイミングが想定から外れるような場合は、システム全体として設計値を上回るメモリリソースが要求される恐れがあります。この時、メモリリソースがVMへ過剰に分配されることで、ホストで最低限必要となるメモリが不足し、システム全体の挙動に影響するのではないかという点に着目しました。

今回はDynamic Memory適用時に、ホストとVM間でどのように動的にメモリが割り当てられるかについて検証を行いました。

検証1 ホストとVM間で動的に割り当てられる物理メモリ容量の検証

まず、VMがホストに搭載される物理メモリ容量を上回るメモリリソースを要求する場合、どのようにホストとVMへ物理メモリが分配されるのかを確かめました。Hyper-Vホスト上に作成した4台のVM上で、大量のメモリを消費するテストツールを起動して物理メモリ容量以上のメモリリソースを要求させ、システム全体のメモリが枯渇した状況を再現します(図1参照)。

図1 検証1の環境

この状況で各VMに割り当てられるメモリ容量をホストで測定した結果とそれから導き出されるホストの物理メモリ容量を表1に示します。

表1 VMのメモリ過負荷時の割り当てメモリ量とホストの物理メモリ量
物理搭載メモリ ホストで認識されるメモリ容量(MB) VMによるメモリ要求量/メモリ実割当量 メモリ測定値(MB) 物理搭載メモリからVM1~4の総和(実割当量)を差し引いた容量(MB)
VM1 VM2 VM3 VM4 VM1~4の総和
12GB 12279 要求量 6901 6904 6797 7070 27672
実割当量 2840 2818 2752 2996 11406 873
24GB 24567 要求量 10620 9465 9802 9412 39299
実割当量 6556 5409 5941 5348 23254 1313
48GB 49143 要求量 15381 15096 15422 17299 63198
実割当量 11310 11100 11424 13206 47040 2103
72GB 73719 要求量 23524 20275 22130 20720 86649
実割当量 19604 16220 18140 16710 70674 3045

    ホストに残るメモリ容量

この検証の結果から、VMに物理メモリ容量以上のメモリ容量を割り当てようとした場合でも、ホストには物理搭載メモリ容量に応じて一定量のメモリが自動的に残ることがわかりました。

検証2 ホストに残されたメモリリソースの有効性の検証

次に、自動的にホストに残るメモリ容量が、システム全体が正常に稼働するのに十分な容量なのかを検証しました。Webサーバの負荷テストを行い、メモリが枯渇した状態とそうでない状態にてWebサーバの処理能力を取得し、その処理能力の差をもとにホストに残されたメモリリソースの有効性を検証しました。

検証2のポイント

<サーバ環境>

  • 検証1に加えて、Microsoft Visual StudioのWebサーバ負荷テスト(注)環境(Webサーバ、AD&SQLサーバ)を構成
  • Webサーバ・AD&SQLサーバは、メモリ枯渇時の、自身の割り当てメモリ容量不足による性能劣化を防ぐためStartup RAMを2GBに設定

<メモリ状態の定義>

  • システム全体でメモリが枯渇していない状態:
    VMが要求するメモリ割り当て量が物理メモリ容量以内に収まっている状態(システム全体で70%程度のメモリ負荷状態)
  • システム全体でメモリが枯渇した状態:
    VMが要求するメモリ割り当て量が物理メモリ容量以上となる状態(検証1の状態)

図2 検証2の環境

Webサーバの処理能力を測定した結果を以下に示します。
1秒あたりの要求数及び平均応答時間を比較したところ、Webサーバの処理能力にほとんど差がないことがわかりました。

表3 Webサーバの処理能力測定値
状態 Webサーバの性能測定値
要求数/秒 平均応答時間(秒)
システム全体でメモリが枯渇していない状態 8.50 20.10
システム全体でメモリが枯渇した状態 8.43 20.07

また、Hyper-Vのワークロードに加えて、ホストではウィルス対策ソフトウェアなどホスト自身を監視・管理するソフトウェアが動作するため、それらのソフトウェアによるメモリの使用がWebサーバの処理能力に影響を与えることも考えられます。このため、ホストにウィルス対策ソフトウェアを導入し、ウィルススキャン実行中に同様の測定を行いました。

表4 ホストでウィルススキャン実行中のWebサーバの処理能力測定値
状態 Webサーバの性能測定値
要求数/秒 平均応答時間(秒)
システム全体でメモリが枯渇していない状態 8.69 20.10
システム全体でメモリが枯渇した状態 8.65 20.10

この測定結果でも、1秒あたりの要求数及び平均応答時間を比較したところ、Webサーバの処理能力に差がないことがわかりました。今回の検証からはウィルス対策ソフトウェアが動作できる程度のメモリ容量も加味された容量が、ホストに残っていると見受けられました。

まとめ

以上の結果から、今回検証した範囲では、Dynamic Memoryではホストに必要となる物理メモリ容量が自動的に確保されるようになっていること、システム全体のメモリが枯渇した状況下でもホストのメモリ不足を原因としたVMの性能劣化は発生しないことがわかりました。

なお、ホストで確保する物理メモリ容量はレジストリーキー(MemoryReserve)を設定することで明示的に指定することも可能です。

[場所]HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Virtualization
[キー]MemoryReserve (MB単位)

MemoryReserve値を極端に低い値(例えば512MB)に設定してしまうと、システム全体 のメモリが枯渇した時にVM(ゲストOS)が操作できなくなるなどHyper-Vの挙動が悪化するため注意が必要です。

注)参考:Visual Studio Team System - Test Edition

【ご注意】
動作確認したWindows Server 2008 R2 SP1は開発段階にあるため仕様変更の可能性があります。

PCサーバ PRIMERGYに関する資料請求・お見積もり・ご相談

Webでのお問い合わせ

入力フォーム

当社はセキュリティ保護の観点からSSL技術を使用しております。

お電話でのお問い合わせ

0120-933-200 富士通コンタクトライン(総合窓口)

受付時間 9時~17時30分
(土曜・日曜・祝日・当社指定の休業日を除く)