VMwareのメモリ管理は、バランスをとるのが難しいようです。クラスターRAM、リソースプール、VMwareの管理手法(TPS、バルーニング、ホストスワッピング)、ゲスト内RAM使用率、スワッピング、予約、共有、制限には、多くの変数があります。
クライアントが専用のvSphereクラスターリソースを使用している状況にいます。ただし、仮想マシンを物理ハードウェア上にあるかのように構成しています。つまり、これは、標準のVMビルドに4つのvCPUと16GB以上のRAMがあることを意味します。私は小規模(1 vCPU、最小限のRAM)から始め、実際の使用状況をチェックし、必要に応じて調整する学校から来ました。残念ながら、多くのベンダー要件と仮想化に不慣れな人々は、必要以上のリソースを要求しています...この決定の影響を定量化することに興味があります。
「問題」クラスターからのいくつかの例。
リソースプールの概要-ほぼ4:1のオーバーコミットに見えます。大量のバルーンRAMに注意してください。
リソースの割り当て-最悪の場合の割り当て列は、これらのVMが、制約された条件下で構成されたRAMの50%未満にアクセスすることを示しています。
上記のリストのトップVMのリアルタイムメモリ使用率グラフ。4つのvCPUと64GB RAMが割り当てられています。平均9GB未満の使用です。
同じVMの概要
vSphere環境でリソース(特にRAM)をオーバーコミットおよびオーバー構成することのマイナス面は何ですか?
VMがより少ないRAMで実行できると仮定すると、仮想マシンを実際に必要とするよりも多くのRAMで構成するためのオーバーヘッドがあると言ってもいいでしょうか?
反論をどうされています。「VMが割り当てられたRAMの16ギガバイトを持っているが、唯一の4ギガバイトを使用している場合、問題は何でしょうか?」?たとえば、VMは物理ハードウェアと同じではないという教育を受ける必要がありますか?
RAM使用量を測定するために使用する特定のメトリック。「アクティブ」対時間のピークを追跡しますか?「消費」を見ていますか?
更新:vCenter Operations Managerを使用してこの環境のプロファイルを作成し、上記のクラスター統計の詳細を取得しました。物事は間違いなく過剰にコミットされていますが、実際にはVMは不要なRAMで過剰に構成されているため、実際の(小さな)メモリフットプリントはクラスタ/ホストレベルでメモリ競合を示しません...
私の要点は、OSレベルのキャッシュ用に少しのバッファーを備えたVMを実際に適切なサイズにする必要があるということです。無知やベンダーの「要件」から過剰にコミットすると、ここに示される状況になります。メモリバルーニングは、パフォーマンスへの影響があるため、どの場合でも悪いようです。そのため、適切なサイズ設定でこれを防ぐことができます。
更新2: これらのVMの一部は、次のものでクラッシュし始めています:
kernel:BUG: soft lockup - CPU#1 stuck for 71s!
VMwareは、これを大量のメモリのオーバーコミットメントの症状として説明しています。質問に答えていると思います。
vCopsの「回収可能な廃棄物」グラフ...