動的メモリ制御(DMC:Dynamic Memory Control)

XenServerの動的メモリ制御(DMC。「メモリの動的最適化」、「メモリオーバーコミット」、または「Memory Ballooning」とも呼ばれます)では、実行中の仮想マシンのメモリが自動的に調節されます。この機能では、各仮想マシンに割り当てられたメモリ量を特定の範囲内で増減して、パフォーマンスを維持しながらサーバーあたりの仮想マシン密度を向上させることができます。

DMCが無効な場合、サーバー上に使用可能なメモリがないときに追加の仮想マシンを起動しようとすると、メモリ不足によるエラーが発生します。この問題を解決するには、既存の仮想マシンに割り当てたメモリ量を減らして、各仮想マシンを再起動しなければなりません。DMCを有効にすると、サーバー上に使用可能なメモリがない場合でも、XenServerによって実行中の仮想マシンのメモリ割り当て量が(管理者が設定した範囲内で)減らされて、追加の仮想マシン用に解放されます。

動的または静的なメモリ範囲

管理者は、各仮想マシンについて 動的メモリ範囲 を設定できます。これは、仮想マシンを再起動せずに増減できるメモリ量の範囲を指します。管理者は、実行中の仮想マシンについてこのメモリ範囲を調節でき、仮想マシンを再起動する必要はありません。XenServerでは、仮想マシンに割り当てられるメモリがこの動的メモリ範囲内で維持されます。たとえば、動的最小メモリ量を512MB、動的最大メモリ量を1024MBに設定した場合、この仮想マシンの動的メモリ範囲は(DMR)は512〜1024MBになり、この範囲内で仮想マシンが動作します。XenServerのDMCを有効にすると、各仮想マシンのメモリがこのDMR内で常に確保されます。

ホストサーバーに十分な量のメモリがある場合、すべての実行中の仮想マシンに動的最大メモリ量が割り当てられます。使用可能なメモリがないサーバー上で追加の仮想マシンの起動が必要になると、実行中のほかの仮想マシンのメモリが解放されます。追加の仮想マシン用に必要なメモリは、実行中の各仮想マシンから、指定されたメモリ範囲内で均等に再割り当てされます。

XenServerがサポートするオペレーティングシステムの中には、メモリの動的な増減をサポートしないものがあります。このため、仮想マシンの起動時に最大メモリ量を割り当てて、ゲストオペレーティングシステムがページテーブルやほかのメモリ管理ストラクチャを用意できるようにする必要があります。XenServerでこれを行うには、 静的メモリ範囲 という概念を使用します。静的メモリ範囲は、仮想マシンの実行中に増減できないメモリ範囲です。動的メモリ範囲は、常に静的メモリ範囲内でなければならないなどの制約を受けます。静的最小メモリ量(静的メモリ範囲の最小値)には、XenServer上でそのオペレーティングシステムが動作するために必要な最低限のメモリ量が設定されています。

重要: 静的最小メモリ量にはそのオペレーティングシステムで必要な最低限のメモリ量が設定されているため、この値を変更しないことをお勧めします。詳しくは、『 XenServer管理者ガイド 』を参照してください。静的最大メモリ量に動的最大メモリ量よりも大きな値を設定すると、仮想マシンにより多くのメモリを割り当てなければならなくなったときに、その仮想マシンを再起動しなくても割り当て量を増やすことができます。

動的メモリ制御の制限事項

XenCenterでDMCの値を設定する場合、以下の制限事項に注意してください。

  • 動的最小メモリ量には、静的最小メモリ量よりも大きな値を設定する必要があります。
  • 動的最小メモリ量には、動的最大メモリ量よりも小さな値を設定する必要があります。
  • 動的最大メモリ量には、静的最大メモリ量よりも小さな値を設定する必要があります。

仮想マシンのメモリプロパティを設定するときは、上記の条件を満たす任意の値を指定できますが、検証チェックが行われます。さらに、オペレーティングシステムによっては、特定のメモリ構成だけがサポートされています。詳しくは、『 XenServer管理者ガイド 』を参照してください。

動的メモリ制御(DMC:Dynamic Memory Control)