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


17

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

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

ESXiが実際にメモリ自体を管理することを説明しますが、ESXiサーバー自体に割り当てたメモリの量を尋ねました。

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

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

回答:


26

ここで問題になっているのは、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
  • VMが使用する4261.98 MB * 13

考慮すべき別の側面があり、それがメモリのしきい値です。デフォルトでは、VMwareは6%の空き(高メモリしきい値)を目指します。そのため、55 GBの使用済みメモリを45 GBまで減らす必要があります

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

メモリ再生方法

  1. 透過的なページ共有
  2. メモリーバルーニング
  3. ハイパーバイザーの交換

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

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

知っておく価値のあるいくつかの大まかなルール(上記の論文およびその他の資料にすべて記載)。

  1. 2/4 MBページを使用するVMでは、透過的なページ共有は行われません。4096 MBをWindows VMに割り当てたため、デフォルトでは2/4 MBページを使用します(PAEに依存)。VMwareは、大きなページを共有可能な4 KBページに分割します。TPSは、アイドル状態のCPUサイクルを使用し、特定のレートでメモリページをスキャンすることに依存しています。比較的ゆっくりとメモリを返します(数分ではなく1時間と考えてください)。したがって、ブートストームは、TPSが役に立たないことを意味します。3つのうち、これはパフォーマンスへの影響が最小です。ドキュメントからさらに、

ハードウェア支援のメモリ仮想化(たとえば、Intel EPTハードウェアアシストやAMD RVIハードウェアアシスト[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%)。マニュアルから、これによりパフォーマンスが大幅に低下する可能性がありますが、

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

概要

ストレスの重要なポイントは、環境がどのように動作するかをホワイトペーパーから予測することは不可能です。

  1. TPSはどれくらいの量を提供できますか?(VMがOS、Service Pack、および実行中のアプリケーションとどれだけ似ているかによって異なります)
  2. VMがメモリを割り当てる速度はどれくらいですか?速度が速いほど、影響の少ないメモリ再生スキームが現在のしきい値を維持するのに成功する前に、次のしきい値にジャンプする可能性が高くなります。
  3. アプリケーションに応じて、各メモリ再生スキームの影響は大きく異なります。

平均シナリオをテストし、95%パーセンタイルシナリオ、最後に最大シナリオをテストして、環境の実行方法を理解します。


編集1

vSphere 4(または4.1では思い出せない)を追加すると、ローカルディスクにハイパーバイザースワップを配置することができますが、VMをvmotionできます。共有ストレージを使用している場合は、ハイパーバイザースワップファイルをデフォルトでローカルディスクに移動することを強くお勧めします。これにより、1つのホストが厳しいメモリプレッシャーにさらされている場合でも、同じ共有ストレージ上の他のすべてのvSphereホスト/ VMに影響を与えなくなります。

編集2

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

編集3

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


1
VMware は、使用されていないメモリを割り当てません。オーバーコミットが機能する本当の理由は、VMが要求したときに最大量のメモリしか割り当てられないためです。すべてが割り当てられると、追加メモリの要求はスワップから発生します。
アダプター

1
そのコメントを追加する前にこのビットを見ましたか?「ハイパーバイザーはすべてのメモリを
事前に

それはかなり明白にOPの主な関心事の1つであるため(vmwareは私が持っていないメモリをどのように想起させるのですか?)、それは後付けとしてではなく、リストの上位に表示されるべきでした。レクラメーションを説明することにより、メモリ使用量を逆方向に説明しています。どうして ?
アダプター

どうですか?回答によると、これはあなたが割り当てたメモリ量です。事前に割り当てられません。(VMのメモリ使用量に基づいて)それが影響する場合。誰かがそれを心配していないとは本当に言えません。メモリをオーバーコミットする場合、その影響を知っておく必要があります。
Mアフィフィ

4

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

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

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

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


2

VMWare ESXiインストールで処理してください。メモリバルーニング、圧縮、重複排除技術を使用しているため、VMWareシステム上のRAMリソースをオーバーコミットできます。

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.