web-dev-qa-db-ja.com

KVM and Swap space

次のシナリオを想定します。2GiBのホストは、KVMを使用して少数のゲストを実行します。通常、各ゲストは多くのメモリを必要としません。各ゲストには256 MiBが与えられ、親指をいじるサービスを実行します。ただし、ゲストがより多くのメモリを必要とする場合があります。現時点では、各ゲストのRAMには独自のスワップ領域があります。スワップの一部が使用されていることに気付きました。その構成で問題が発生したことはありません、しかし単に好奇心から:

最適なスワップ割り当て戦略は何ですか?

  1. 各ゲストにそれぞれのディスクから独自のスワップ領域を割り当て、ゲストにホストからのメモリをほとんど割り当てません。 (これは私が今やっていることです。)
  2. ホストにより多くのスワップ領域を割り当て、ゲストには割り当てず、ゲストにより多くのメモリを割り当てます。

メモリバルーニングはメモリパフォーマンスの向上に役立ちますか?

4
countermode

「時折ゲストがより多くのメモリを必要とする」とは、 メモリのオーバーコミット の適切なアプリケーションのように聞こえます。アイデアは、各ゲストが一般にそれを使用していないため、各ゲストに大量のメモリを割り当てます(実際に提供できる量よりも多く)。次に、計算を行って、ゲストが実際にすべてのメモリをdo使用する最悪のシナリオで実際にディスクにスワップアウトできる十分なスワップ領域があることを確認します。

スワップスペースはHostマシン上にあり、それに従う必要があります

Host swap space = sum of all guest memory + recommended Host swap space

安全であるために。

したがって、10人のゲストがいて、2 GiB RAMの場合、

  • 512 MiB RAMゲストあたり(512 * 10 =合計5120 MiB))
  • ホスト上の2GiBスワップ

ホストのスワップ領域は少なくとも512 * 10 + 2048 = 7168 MiBこれを安全に処理するには、2GiBのスワップをホスト専用にできると想定します(その小さなホストメモリの場合、これをお勧めします)。

必ず最初にこれらの種類のセットアップをテストして、マシンがそれらを処理できることを確認してください。それらのベンチマークはさらに優れており、さまざまなロードアウトを試して、最適なものを選択することができます。

4
ndt

@ndtには適切な手順があります。私のシナリオは違うので、別の方法を採用しています。

私のサーバーには多くのゲストがいて、それらすべてが単一のアプリケーション(通常はWeb /メール/ファイルサーバー)を実行しています。内部のデータは非常に重要であるため、バックアップとスナップショットは非常に頻繁に作成されます。したがって、ディスクイメージはより小さくシンプルである方が優れています。したがって、実際にはスワップパーティションを作成するのではなく、スワップファイルを作成します。高い処理能力やメモリを必要とするゲストはいないので、ディスクストレージとメモリも小さいです。スワップファイルはrootfs内にあります。

この設定により、多くのスペースが節約され、メンテナンスが簡単になります。私が言ったように、それは他の状況とは異なります。

1
Willian Paixao