VMware / ESXのLinux VMにはスワップパーティションが必要ですか?


18

VMware ESXセットアップでは、これらのオプションの違いは何ですか?:

  • 1 GBのRAMと1 GBのスワップパーティションを備えたLinux VMで、VMは1.5 GBのRAMを使用します
  • 1GB RAMでスワップパーティションがなく、VMが1.5 GB RAMを使用するLinux VM

つまり、どちらの場合もスワップが使用されています。

  • 最初のスワップは、Linuxスワップパーティションに対して行われます
  • 2番目のケースでは、VMwareは512MBをVMwareストレージプールにスワップします。

それでは、Linux VMにスワップパーティションを与えることに意味はありますか?


ESXホストでスワップが必要かどうか、またはVMでどのように処理されるかを尋ねていますか?あなたが何を意味するのかを特定するために質問を詳しく述べたいと思うかもしれません。
バートシルバース

うまくいけば今すぐ。
サンドラ

回答:


15

人々がOS特有の理由を扱っているという事実を無視して、私はスワップパーティション/ファイルで実行しないことが悪い考えである2つの理由があります。

  1. スペースファイル/パーティションのないVMに1.5 GBのRAMが割り当てられており、1.5 GB + 1 MBを使用する場合、メモリ不足エラーが報告されます。スワップスペースを使用すると、アクティブなメモリからディスクにデータをスワップできます。
  2. ゲストOSは、ホストよりもはるかに優れたメモリ管理を行います。ホストが現在必要のないメモリについて知識に基づいた推測を行うことができるため、メモリバルーニングのようなテクノロジーが存在するのはこのためです。

10

はい。Unixの方法です。

Unix(Linuxでさえも)スワップできることを期待しています。システムがスワップできない場合(スワップパーティションなしで構成が誤っているか、スワップスペースがいっぱいであるため)、
悪いことが起こります。Linuxでこれらの悪いことの1つはOut Of Memory Killerです。これは、ほとんどのRAMを使用していると思われるプログラムの後ろに飛び込みます(データベースサーバーはお気に入りのターゲットです)。


4

何に/proc/sys/vm/overcommit_memory設定しますか?カーネルのドキュメントから:

0       -       Heuristic overcommit handling. Obvious overcommits of
                address space are refused. Used for a typical system. It
                ensures a seriously wild allocation fails while allowing
                overcommit to reduce swap usage.  root is allowed to
                allocate slightly more memory in this mode. This is the
                default.

1       -       Always overcommit. Appropriate for some scientific
                applications.

2       -       Don't overcommit. The total address space commit
                for the system is not permitted to exceed swap + a
                configurable percentage (default is 50) of physical RAM.
                Depending on the percentage you use, in most situations
                this means a process will not be killed while accessing
                pages but will receive errors on memory allocation as
                appropriate.

したがって、1を使用している場合、違いはありません。2を使用していて、Linuxスワップファイルがない場合、プロセスは512Mの(仮想)メモリを割り当てることができません。0の結果は明確ではありません。

編集:http : //utcc.utoronto.ca/~cks/space/blog/linux/LinuxVMOvercommitから、これが0の仕組みです:

ヒューリスティックオーバーコミットは、システムがすべてのメモリを再利用し、現在より多くのRAMを使用している他のプロセスがない場合、システムが提供できるメモリ量を計算しようとします。これ以上を要求している場合、割り当ては拒否されます。具体的には、理論上の「空きメモリ」数は、空きスワップスペース、空きRAM(ルートでない場合は32分の1未満)、および統合バッファキャッシュと再利用可能としてラベル付けされたカーネルデータによって使用されるすべてのスペースを合計することによって計算されます(一部の予約ページを除く)。

したがって、計算にもスワップを使用します。一般的には、次のRHELの推奨事項に従います。

M = Amount of RAM in GB, and S = Amount of swap in GB, then
If M < 2
    S = M *2
Else
    S = M + 2

1
cat /proc/sys/vm/overcommit_memoryを返します0overcommit_memory価値とスワップ/スワップなしの点で何をお勧めしますか?
サンドラ

3

スワップパーティションは潜在的に高速になる可能性があります。特にルートディスクがほぼいっぱいで、断片化なしでスワップファイルを1つに作成できない場合、ファイルシステムによって発生する可能性のあるオーバーヘッド、および該当する場合LVM。

ただし、メモリ要件の33%をディスクに保持すると、両方のマシンのパフォーマンスは低下します。


「ルートディスク」と言うとき。ESXホストで、ESXがスワップファイルを作成するという意味ですか?
サンドラ

いいえ、ルートファイルシステムを含むVMのシステムディスクを意味します。結局のところ、専用のスワップパーティションがない場合にスワッピングが発生する場所です。
スヴェン

この答えは、スワップパーティションとスワップファイルの間で議論されていることに注意してください。問題は、スワップが必要かどうかだと思いました。
user606723

@ user606723:スワップをまったく使用しない場合、VMが持つメモリよりも多くのメモリを割り当てようとすると、メモリ不足エラーが発生し、1GBの物理的な状況で1.5GBの使用は発生しません。
スヴェン

@SvenW、はい、しかし、それはそのような何かが起こる可能性が高いことを与えられていません。それは管理者が決めることです。
user606723

0

次のリンクを参照してください-https : //help.ubuntu.com/community/SwapFaq

基本的に、休止状態が必要な場合、またはVMに割り当てるよりも多くのメモリを使用する場合を除き、スワップパーティションに大きな利点はありません。

私は長年、Linuxマシンでスワップパーティション/ファイルを使用していません。


1
問題はスワップ/スワップなしではありません。VMwareがスワップを処理する方法についてです。
サンドラ

0

スワップの明らかな利点は、マシンがクラッシュしてもクラッシュダンプを作成できることです。私が間違っている場合は修正してください。しかし、これはスワップなしでは不可能です。もちろん、これはVMWare固有のものではなく、どこでも適用されます。指摘することが重要かもしれないと感じました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.