8.2.15.5. Kernel Same-page Merging (KSM)

仮想マシンの実行時には、一般的なライブラリーや使用頻度の高いデータといったアイテム向けに、重複したメモリーページが作成されることがあります。さらに、同じようなゲスト OS やアプリケーションを実行している仮想マシンでは、仮想メモリー内のメモリーページが重複してしまいます。

KSM (Kernel Sam-page Merging) を有効にすると、ホスト上の仮想メモリーを調査し、重複するメモリーページを排除して、残りのメモリーページを複数のアプリケーションや仮想マシンで共有できます。これらの共有メモリーページにはコピーオンライトのマークがついており、仮想マシンでページに変更を書き込む必要がある場合には、先にコピーを作成してからそのコピーに変更を書き込みます。

KSM が有効な間は、MoM が KSM を管理します。KSM を手動で設定制御する必要はありません。

KSM は、2 つの方法で仮想メモリーのパフォーマンスを向上させます。共有メモリーのページは使用頻度が高いため、ホストはそのページをキャッシュやメインメモリーに格納する可能性が高くなり、メモリーアクセス速度が向上します。さらに、メモリーオーバーコミットを使用することで、KSM は仮想メモリーのフットプリントを減らし、スワッピング発生の可能性を軽減してパフォーマンスを向上させます。

KSM はメモリーバルーニングよりも多くの CPU リソースを消費します。KSM の CPU 消費量は、負荷をかけても変わりません。同一の仮想マシンやアプリケーションをホスト上で実行すると、KSM は異種の仮想マシンを実行するよりもメモリーページをマージする機会が多くなります。異なる仮想マシンやアプリケーションを多く実行している場合には、KSM を使用するための CPU コストがその利点を打ち消してしまう可能性があります。

パフォーマンスに関する考慮事項:

  • KSM デーモンが大量のメモリーをマージした後に、カーネルのメモリーが計算した統計値が最終的に矛盾することがあります。システムに大量の空きメモリーがある場合には、KSM を無効にするとパフォーマンスが向上することがあります。
  • Red Hat は、パフォーマンスが高く、低レイテンシーを必要とするワークロードには KSM およびオーバーコミットを推奨しません。高パフォーマンスの仮想マシンテンプレートおよびプールの設定 を参照してください。
  • Red Hat は、パフォーマンスよりも仮想マシンの密度 (経済性) を増やすことが、重要な場合は、KSM を推奨します。

KSM を有効にするには、New Cluster またはEdit Cluster ウィンドウの Optimization タブをクリックします。次に、Enable KSMのチェックボックスを選択します。この設定をし用すると、MoM は必要なときに KSM を実行でき、CPU コストを上回るメモリー節約のメリットが得られます。「最適化設定の説明」を参照してください。