ESXi サーバーではメモリはどのように割り当てられますか?

ESXi サーバーではメモリはどのように割り当てられますか?

48 GB の RAM を搭載した ESXi 4.1 サーバーがあります。

各 VM に 4 GB のメモリを割り当てています。サーバーには 13 台の仮想マシンがあるため、マネージャーはこれが間違っていると考えています。

ESXi は実際にはメモリ自体を管理することを説明するつもりですが、ESXi サーバー自体にどれだけのメモリを割り当てたのかと尋ねられました。

割り当てませんでした (ESXi サーバー自体にメモリを割り当てるオプションについては聞いたことがありません)。

ESXi サーバーにメモリはどのように割り当てられますか? 問題なく仮想マシン間で RAM を過剰割り当て/分散す​​るにはどうすればよいですか?

答え1

ここで問題となるのはESXiだけではありません。

  1. 各VMは最大4GB+「オーバーヘッド」を消費します。こここれは割り当てられたvCPUとメモリに依存します。各VMは少なくとも 4261.98 MB(4096 + 165.98)
  2. ESXiのメモリオーバーヘッドはハードウェアに依存します。最も簡単なオプションは、システムvSphereクライアントのメモリ使用量。記憶では1.3GB程度だったと記憶しているが、とてもハードウェアに依存します。

メモリ割り当てとオーバーコミットの説明

ハイパーバイザーは事前にすべてのメモリを割り当てることはありませんただし、これは VM の使用状況に依存します。ただし、VM が割り当てられたメモリをすべて割り当てて使用しようとした場合に何が起こるかを理解しておくことは価値があります。

VM + ホストが使用しようとする最大値は、およそ次のようになります。55 GB 走行距離は異なる場合があります

  • ESXi が使用する 1.3 GB
  • 4261.98 MB * 13 は VM によって使用されます

考慮すべきもう1つの側面は、メモリしきい値です。デフォルトでは、VMwareは6%の空き容量(高メモリしきい値)を目指します。55 GB使用メモリを約45GB

つまり、VM が割り当てられたメモリを使用する場合、ホストは約 10,500 MB のメモリをどこかから取り戻す必要があります。ESX は、追加の 10.5 GB を見つけるために 3 つのことを行います。

メモリ再利用方法

  1. 透過的なページ共有
  2. 記憶のバルーン
  3. ハイパーバイザーのスワッピング

読んで理解する必要がありますVMware® ESX™ Server におけるメモリ リソース管理の理解

多数の要因に応じて、オーバーコミットされたホストではこれら 3 つの組み合わせが発生する場合があります。オーバーコミットの影響を理解するには、環境をテストし、これらのメトリックを監視する必要があります。

知っておく価値のある大まかなルールをいくつか紹介します (すべて上記の論文とその他の情報源に記載されています)。

  1. 透明なページ共有2/4 MB ページを使用する VM では発生しません。Windows VM に 4096 MB を割り当てているため、デフォルトで 2/4 MB ページが使用されます (PAE 依存)。メモリが不足している場合にのみ、VMware は大きなページを 4 KB ページに分割して共有できるようにします。TPS はアイドル CPU サイクルを使用し、一定の速度でメモリ ページをスキャンします。メモリの戻りは比較的遅くなります (数分ではなく 1 時間かかると考えてください)。したがって、ブート ストームが発生すると、TPS は役に立ちません。3 つのうち、これがパフォーマンスへの影響が最も低くなります。ドキュメントの続き

ハードウェア支援によるメモリ仮想化(Intel EPT Hardware Assist や AMD RVI Hardware Assist [6] など)システムでは、ESX はゲスト物理ページを大きなホスト物理ページ(通常のページ用の 4KB ではなく 2MB の連続メモリ領域)で自動的にバックアップし、TLB ミスが減ってパフォーマンスが向上します。このようなシステムでは、ESX はこれらの大きなページを共有しません。その理由は、1) 同じ内容を持つ 2 つの大きなページが見つかる可能性が低い、2) 2MB ページのビットごとの比較のオーバーヘッドは 4KB ページの場合よりもはるかに大きいためです。ただし、ESX は各大きなページ内の 4KB ページのハッシュを生成します。ESX は大きなページをスワップ アウトしないため、ホスト スワップ中に大きなページは小さなページに分割され、これらの事前生成されたハッシュを使用して、スワップ アウトされる前に小さなページを共有できます。つまり、ホスト メモリがオーバーコミットされるまで、ハードウェア支援によるメモリ仮想化システムではページ共有が見られない可能性があります。

  1. 気球次に起動します(しきい値は設定可能で、デフォルトではホストの空きメモリが6%未満(高とソフトウェアの間)の場合)。ドライバをインストールし、Javaと管理されたアプリケーション全般で、スワップが無効になることがあります。OS はガベージ コレクターが次に何を行うかを把握していないため、ディスクにスワップされたページにアクセスしてしまいます。Java アプリケーションのみを実行するサーバーでは、このような事態が発生しないようにするためにスワップを完全に無効にすることが珍しくありません。 vSphere Memory Management、SPECjbbの17ページをご覧ください。

  2. ハイパーバイザーのスワッピング3つの方法のうち、保証設定された時間内にハイパーバイザーが利用できる「メモリ」。これは、1と2で十分なメモリが確保できない場合に使用されます。難しいしきい値(デフォルトでは空きメモリの 2%)。パフォーマンス メトリックス(自分で調べてください)を読むと、これが 3 つの中で最もパフォーマンスが悪いことがわかります。パフォーマンスへの影響はほぼすべてのアプリケーションで顕著になるため、絶対に避けるようにしてください。2桁の割合

  3. もう一つ注意すべき状態がある低い(デフォルトでは1%)。マニュアルによると、これによりパフォーマンスが大幅に低下する可能性があります。

まれにホストの空きメモリが下限しきい値を下回る場合、ハイパーバイザーはスワッピングとメモリ圧縮を通じてメモリの再利用を継続し、さらにターゲット メモリ割り当てよりも多くのメモリを消費するすべての仮想マシンの実行をブロックします。

まとめ

強調すべき重要な点は、ホワイトペーパーから環境がどのように動作するかを予測することは不可能であるということです。

  1. TPS はどの程度の効果をもたらすのでしょうか? (VM と OS、サービス パック、実行中のアプリケーションの類似性によって異なります)
  2. VM はどのくらいの速さでメモリを割り当てていますか? 割り当てが速いほど、影響の少ないメモリ再利用スキームによって現在のしきい値を維持する前に、次のしきい値にジャンプする可能性が高くなります。
  3. アプリケーションに応じて、各メモリ再利用スキームの影響は大きく異なります。

平均シナリオ、95% パーセンタイル シナリオ、最後に最大値をテストして、環境がどのように実行されるかを理解します。


編集1

vSphere 4(または4.1だったかは覚えていません)では、ハイパーバイザースワップをローカルディスクに配置することが可能になりましたが、それでもvモーションVM。共有ストレージを使用している場合は、ハイパーバイザー スワップ ファイルをデフォルトでローカル ディスクに移動することを強くお勧めします。これにより、1 つのホストで深刻なメモリ不足が発生した場合でも、同じ共有ストレージ上の他のすべての vSphere ホスト/VM に影響が及ばなくなります。

編集2

コメントに基づいて、ESX がメモリを事前に割り当てないという事実を太字で示しました...

編集3

メモリしきい値についてもう少し詳しく説明しました。

答え2

VMware (およびその他の仮想化テクノロジー)共有さまざまなアルゴリズムに従って、VM 間でリソース (メモリ、プロセッサ時間、さまざまな種類の I/O) を共有します。

可能ですオーバーコミットすべての VM が常に必要なすべての処理、メモリ、または I/O を使用するわけではないため、リソースが不足します。 VMware のリソース管理ガイドESXi で何ができるかを調べるには、おそらくここが最適です。

また、異なるリソースに対して異なる VM に重み付けすることで、アルゴリズムの効果を管理することもできます。たとえば、アプリケーション サーバー VM に、ファイル サーバー VM よりも高いプロセッサの重み付けを与えることができます。ただし、すぐに使用できる設定で、ほとんどの要件を十分に処理できます。場合によっては、ここでいくつかの構成を行うだけで、理解できないマネージャーをなだめるのに十分ですが、もちろん、注意して、VMware のバージョンのドキュメントを読み、何をしているのか理解してください。マネージャーがそれ以上なだめる必要がない場合は、デフォルトを使用してください。

オーバーコミットは、特に単一のサーバーで仮想化している場合は、必ずしも良いアイデアではないことに注意してください。ESXi 資産内のリソースの使用状況を監視し、1 つ以上のリソースすべてを頻繁に消費している場合は、必要に応じて追加のホスト/リソースを追加する必要があります。

答え3

VMWare ESXiのインストールで処理します。VMWareシステムでは、RAMリソースをオーバーコミットする可能性があります。メモリバルーニング、圧縮、重複排除技術

仮想マシンが同様のオペレーティング システムを使用している場合は、ある程度の節約になります。これらの機能を最大限に活用するには、ゲスト VM 内で VMWare ツールを有効にしてください。

関連情報