web-dev-qa-db-ja.com

ESXiが予想よりも高いメモリ使用量を報告するのはなぜですか?

高可用性クラスターにESXi(5.1)ホストのペアがあります。各ホストには48GBのRAMがあります。現在、18個のVMを実行しており、次の構成済みメモリ量があります。

  • 1x 4GB、1 vCPU
  • 1x 4GB、4 vCPU
  • 5x 2GB、1 vCPU
  • 5x 1GB、1 vCPU
  • 4x 512MB、1 vCPU
  • 2x 512MB、1 vCPU、フォールトトレランス付き(消費メモリが2倍になる)

これにより、最大27GBのRAMが追加されます。 リソース管理ガイド に基づくと(2 GB、1 vCPU VMの場合は38MBのオーバーヘッド、512 MB、1 vCPUVMの場合は23MBと想定)、 612 MBのオーバーヘッド、合計で約28GB。

個々のホストを見ると、使用中のメモリがそれに一致しているように見えます。 [概要]タブの[メモリ使用量]で、1つのホストは14240.00 MBを示し、もう1つのホストは14897.00 MBを示し、合計で約28.5GBになります。

ただし、vSphereClientのクラスターの[リソース割り当て]タブには次のように表示されます。

  • 総容量:89705 MB
  • 予約容量:47210 MB
  • 使用可能な容量:42495 MB

2つのホスト間で48GBのRAMが89705ではなく98304MBであるという事実は別として、予約容量が非常に高いのはなぜですか。個々のホストが使用していると主張しているもの(28 GB)とクラスターが使用していると主張しているもの(46 GB)の間には、ほぼ20GBがあります。さらに、HAクラスターは1つのホストの障害に耐えられる必要があり、ソフトウェアはその制約に対してフルキャパシティーで実行していると見なすため、これにより新しいVMを追加できなくなります。

すべてのVMは、すべてのRAMが予約されている2つのフォールトトレラントVMを除いて、RAM制限およびRAM予約なしで構成されています。

これは、vSphere 5.1Standardライセンスを使用しています。

3
asciiphil

VMwareサポートとの(長い)会話の結果、次のことがわかりました。

「予約済み容量」の数値は、クラスターのVMのメモリー構成の関数ではありません。これは、VMで宣言されたメモリ予約、HAアドミッションポリシーから計算された値、およびメモリ管理オーバーヘッドの追加量など、いくつかの要因の合計です。 HAアドミッションコントロール値は、アドミッションコントロールポリシーから直接導出されます。私の場合、単一のホストの障害を許容するように設定したので、ホストの1つでのRAMの合計量がクラスターの予約済み容量に追加されました。

他の制約の中でも、HAアドミッション制御は、予約された容量が単一のホストでRAMを超えることを許可しないようです(または、使用可能な容量がを下回ることを許可しません)。 RAM単一のホスト上。2つのホストクラスターで同じものであるため、どちらが実際に当てはまるかはまだわかりません。)これで最終的な結果が得られます。事実上、任意の量のメモリ予約は、2ホストクラスタのHAアドミッションポリシーの自然な設定とは互換性がありません。フォールトトレランスはメモリ予約を強制するため、同様に互換性がなくなります。クラスタ内のホストでは、予約された容量がより多くのホストに「分散」され、ある程度のメモリ予約が可能になります。

最終的な結果として、HAアドミッションポリシーを変更して、(「1つのホストの価値」ではなく)使用可能なリソースの割合を予約し、その割合を計算して、フォールトトレランスの使用に必要なメモリ予約を除外する必要がありました。

3
asciiphil

これは、HAクラスターのアドミッション制御ポリシーを「予約されたクラスターリソースの割合」に設定し、50%の予約を与えた機能のように見えます。意図したとおりに機能しています。

2