48 GBのRAMを搭載したESXi 4.1サーバーがあります。
VMごとに、4 GBのメモリを割り当てます。サーバーには13台の仮想マシンがあるため、私のマネージャーはこれが間違っていると考えています。
ESXiが実際にメモリ自体を管理することを説明しますが、ESXiサーバー自体に割り当てるメモリ量を尋ねられました。
私は何も割り当てませんでした(ESXiサーバー自体にメモリを割り当てるオプションについても聞いたことがありません)。
ESXiサーバーにメモリはどのように割り当てられますか?問題なく仮想マシン間でどのように割り当て/分配RAM)しますか?
ここで問題となっているのはESXiだけではありません。
メモリ割り当てとオーバーコミットメントの説明
ハイパーバイザーがそのメモリのすべてを前もって割り当てるわけではないことに注意してください。これはVMの使用状況に依存します。ただし、VMが割り当てられたすべてのメモリを割り当てて使用しようとするとどうなるかを理解することは価値があります。
VM +ホストが使用しようとする最大値はおよそ55 GBsになります)走行距離は異なる場合があります
考慮すべき別の側面があり、それはメモリのしきい値です。デフォルトでは、VMwareは6%の空き容量(高いメモリしきい値)を目標としています。したがって、使用されているメモリの55 GBを〜45GBs
つまり、VMが割り当てられたメモリをVMが使用する場合、ホストは約10,500 MBのメモリをどこかから回収する必要があります。 ESXは、追加の10.5 GBを見つけるために3つのことを行います。
メモリ再利用方法
VMware®ESX™Serverのメモリリソース管理について を読んで理解してください。
多くの要因に応じて、3つすべての組み合わせが過剰にコミットされたホストで発生する可能性があります。オーバーコミットの影響を理解するには、環境をテストし、これらの指標を監視する必要があります。
知っておく価値のあるいくつかの大まかなルール(すべて上記の紙およびその他の情報源)。
ハードウェアアシストのメモリ仮想化(たとえば、Intel EPTハードウェアアシストやAMD RVIハードウェアアシスト[6])システムでは、ESXはゲストの物理ページを、大きなホスト物理ページ(通常のページでは4KBではなく2MBの連続したメモリ領域)で自動的にバックアップします。 TLBミスが少ないため、パフォーマンスが向上します。このようなシステムでは、ESXはこれらのラージページを共有しません。1)同じ内容の2つのラージページが見つかる確率が低い、2)2MBページのビットごとの比較を実行するオーバーヘッドが4KBページ用。ただし、ESXは依然として各ラージページ内の4KBページのハッシュを生成します。 ESXはラージページをスワップアウトしないため、ホストスワッピング中にラージページはスモールページに分割されるため、これらの事前生成されたハッシュを使用して、スワッピングページがスワップアウトされる前に共有できます。つまり、ホストメモリがオーバーコミットされるまで、ハードウェア支援のメモリ仮想化システムのページ共有は観察されない可能性があります。
バルーニングが次にキックします(しきい値は構成可能です。デフォルトでは、ホストのメモリ空き容量が6%未満の場合(高とソフトウェアの間))。ドライバーをインストールしていることを確認し、Javaおよびmanagedアプリケーション全般に注意してください。OSには、ガベージコレクターが何を行うかについての洞察がありません次に実行すると、ディスクにスワップされたページにヒットします。Javaアプリケーションを実行して、スワップを完全に無効にして、それが起こらないことを保証するサーバーの場合、これは珍しいことではありません。vSphereメモリ管理、SPECjbbの17ページをご覧ください
ハイパーバイザースワッピング、3つのメソッドからが保証する唯一の方法「メモリ」が設定時間内のハイパーバイザー。これは、1および2がhardしきい値(デフォルトでは2%の空きメモリ)を下回るのに十分なメモリを提供しない場合に使用されます。パフォーマンスメトリックを読むと(自分で)、これが3つのパフォーマンスの中で最悪のパフォーマンスであることがわかります。ほぼすべてのアプリケーションでパフォーマンスへの影響が顕著になるため、絶対に回避することを目指してください2桁のパーセンテージ
lowを認識する必要がある状態がもう1つあります(デフォルトでは1%)。マニュアルから、これはあなたのパフォーマンスを劇的にカットすることができます、
ホストの空きメモリが低しきい値を下回るまれなケースでは、ハイパーバイザーはスワッピングとメモリ圧縮によってメモリを再利用し続け、さらに、ターゲットメモリ割り当てより多くのメモリを消費するすべての仮想マシンの実行をブロックします。
まとめ
重要なポイントは、ホワイトペーパーから環境の動作を予測することは不可能であることです。
平均的なシナリオをテストすると、95%のパーセンタイルシナリオになり、最後に最大になると、環境の実行方法を理解できます。
編集1
さらに、vSphere 4(または4.1ではリコール不可)を使用すると、ハイパーバイザースワップをローカルディスクに配置できるようになりますが、VMはvmotionのままです。共有ストレージを使用している場合は、デフォルトでハイパーバイザースワップファイルをローカルディスクに移動することを強くお勧めします。これにより、1つのホストでメモリの負荷が非常に高くなった場合でも、同じ共有ストレージ上の他のすべてのvSphereホスト/ VMに影響が及ぶことはありません。
編集2
コメントに基づいて、ESXが太字でメモリを事前に割り当てないという事実を作りました...
編集3
メモリしきい値についてもう少し説明しました。
VMware(およびその他の仮想化テクノロジ)shareリソース(メモリ、プロセッサ時間、さまざまな種類のI/O)を、さまざまなアルゴリズムに従ってVM間で共有します。
すべてのVMが常に必要なすべての処理、メモリ、またはI/Oを使用するわけではないため、overcommitリソースを使用できる可能性があります。 VMwareのリソース管理ガイド は、ESXiで可能なことを読むのに最適な場所です。
また、さまざまなリソースに対してさまざまなVMに重みを付けることで、アルゴリズムの効果を管理することもできます。アプリケーションサーバーVMプロセッサの重み付けをファイルサーバーVMよりも高くすることができます。ただし、そのままの設定でほとんどの要件を十分に処理できます。場合によっては、ここでいくつかの構成を行う十分に理解していないマネージャーを満足させるには十分ですが、もちろん注意して、使用しているバージョンのVMwareのドキュメントを読み、何をしているのかを理解してください。マネージャーがそれ以上の協力を必要としない場合は、デフォルトを使用してください。
特に単一のサーバーで仮想化している場合は、オーバーコミットは必ずしも良い考えではないことに注意してください。 ESXi資産内のリソースの使用状況を監視し、1つ以上のリソースをすべて頻繁に消費している場合は、必要に応じてホスト/リソースを追加してください。
VMWare ESXiインストールがそれを処理できるようにします。 メモリバルーニング、圧縮、および重複排除手法 を使用しているため、VMWareシステム上のリソースRAMリソースをオーバーコミットできます。
仮想マシンが同様のオペレーティングシステムを使用している場合は、ある程度の節約になります。これらの機能を最大限に活用するには、ゲストVM内のVMWareツールを必ず有効にしてください。