web-dev-qa-db-ja.com

小さなサーバーでのXenメモリ管理

現在、さまざまなプロジェクトに使用しているサーバーでVMware vSphere5を実行しています。主に、管理のスキルを磨き、いくつかのゲームサーバーを実行するために使用します。

最近、Xen(xen.org)またはおそらくCitrix XenServer(無料バージョン)への移行を検討していました。

XenServerに含まれていないさまざまな機能を調べていたときに、含まれていない機能の1つがメモリのオーバーコミットであることに気付きました。私の限られた知識では、これはVMwarevSphere上にありました。問題は、小規模な環境(1サーバー)でVMwareを使用していたため、メモリのオーバーコミットを利用していたかどうかさえわかりません。

それで、私はそれが何であるか(メモリオーバーコミット)、そしてそれを利用していたかどうかをどうやって知ることができるのか疑問に思っていますか?

3
ianc1215

メモリオーバーコミットメントとは、実行中の仮想マシンに、物理ホストが実際に持っているよりも多くのRAM(合計)を割り当てられるようにすることを意味します。

したがって、同時に実行するVMのRAMを合計し、ハイパーバイザー用のスペースを確保し、合計が物理的なRAMあなたはコミットしすぎていません。

2
Dan

VMware ESXおよびESXiでは、VMware Toolsをインストールすると、メモリ管理ドライバー(別名バルーンドライバー)が有効になります。

メモリのオーバーコミットを可能にするもう1つのメカニズムは、ESX/ESXiレベルでのスワッピング/ページングですが、これは非常に遅いため、回避する必要があります。

これに加えて、ESXi 5には、メモリのオーバーコミットを可能にする別の2つのメカニズムがあります。 1つはメモリの重複排除で、同一のメモリセグメントが1回だけ割り当てられます。そのようなセグメントを見つけるためにアイドル時間にメモリをスキャンするvmkernelスレッドがあります。

もう1つのメカニズムはメモリ圧縮です。スワップする代わりに、サーバーはメモリを圧縮することでスペースを確保します。

使用しているかどうかを確認するには、ESXiコンソールを含むすべてのVMに割り当てられたメモリを追加し、vmkernelに約100MB(これは正確ではありません)を追加します。これが物理メモリよりも大きい場合は、メモリをオーバーコミットしています。

ESXiサーバーのパフォーマンスカウンターで、バルーンサイズと各VM)に使用されるスワップを確認することもできます。

0

Xenには、動的メモリ管理技術、つまりバルーニングとセルフバルーニングがあります。

VMを許可しないnotという点で、メモリのオーバーコミットをサポートしませんシステムで物理的に利用可能なメモリよりも多くのメモリを実際に使用します。

別の言い方をすれば、XenではVM間でRAMを物理的に分割する必要がありますが、VMを再起動しなくても実行時にこれらのパーティションを動的に調整できます。

一方、VMware vSphere Hypervisorは、VMをディスクにスワップアウトできない場合に、物理的に持っているよりも多くのRAMをVMにまた与えることができます。十分なrealramを取得します(他のVMなどをバルーニングすることによって)。

PS、補足として、XenはTrascendent Memoryでもまったく異なるテクノロジーを備えています。XenをサポートするVM(Linux> = 3.0 AFAIK)は、さまざまな目的(主にページキャッシュとして、IOPSを実際のディスクに削減)に使用できます。

0
Luke404