スワップパーティションはどのくらいの大きさにする必要がありますか?


10

数年前から、RAMの2倍のスペースを持つスワップパーティションを作成することをお勧めします。それは今日も当てはまりますか?またはこれはもう必要ありませんか?

8 GiBのRAMを搭載したサーバーがあり、スワップパーティションを作成する必要があります。16GiBが多すぎるのではないかと思っていました。


1
参照してくださいserverfault.com/questions/5841/...
Zoredache

回答:


11

8GBの物理RAMの大規模システムでは、通常2GBのスワップを割り当てます。これらは、OracleまたはPostgreSQLを実行するロードされたデータベースサーバーです。何年もの間、私は重い負荷の下でさえスワップのヒットを見たことはありません。高負荷は、およそ100〜150人のユーザーが約10,000のSQL読み取りを実行し、1分あたり2,500の書き込みを行う可能性があります。

また、スワッピングレベルを調整してスワッピングを阻止し、実行する必要がないことがわかっている不要なプロセスをオフにします。(カスタムLinuxビルド)

上記のEddieのように、1x物理RAMは4GB未満の場合の経験則です。私は大規模なFortune-500企業向けにカスタムLinuxビルドを行っていますが、これらは私たちが通常行っていることであり、私は過去5年間、それらについてコンサルティングしてきた問題はありませんでした。

大規模なシステム:32 GBおよび64 GBのRAMを備えた64ビットLinux、これらはOracleデータベースサーバーであり、通常、Eddieが上記で指摘したようなもののために2 GBのスワップを維持します-アイドルプロセスは、スワップ設定に応じてスワップに移動されます。


5

一見時代を超えた質問。SlashDotの優れた人々はこれについて少し前に話し合いました。彼らが言わなければならなかったことをチェックしてください:

  • 最近のHDDではディスク容量は問題になりません。16GBは、最近のTBドライブではまだ取るに足らない量です。
  • ただし、メモリ管理が不十分な場合は、スワップ領域が大きくなることが問題になることがあります。

4 GBの映画を2時間かけて観る場合、多くのメモリマネージャは、そのすべてのデータをキャッシュすることは良いことだと判断します。映画の途中で、他のすべての実行中のプログラムは1時間使用されておらず、4 GBファイルをより多くキャッシュするために安全に交換できると考えられます。最終結果は、映画を見た後にプログラムの半分がスワップアウトされ、その結果、システムの動作が遅くなり、スワップファイル全体が破壊されます。

  • 結局のところ、正しい決定は、大まかな式ではなく、メモリ要件から行う必要があります。

[日常的に使用したいプログラムを実行するのに十分なRAM]がある場合、スワップを使用する理由はありません。


3

ハイメモリシステムでのSWAPスペースの回答を参照してくださいあなたの質問はより一般的ですが、いくつかのガイダンスのために。意見はこれによって大きく異なりますが、一般に1 GiB以上のRAMを搭載している人は、まったくスワップなしで実行するか、1xメモリをスワップとして実行するようです。

スワップを強制的に実行するほど多くのRAMを使用する予定がない場合でも、少なくとも1xmemoryをスワップとして使用することにはいくつかの価値があります。これにより、オペレーティングシステムは、使用が予期されていないものをスワップアウトできます。代わりに、たとえば、そのメモリをディスクまたはIOバッファに使用できるようにします。


3

システムが休止状態になり、その後正常に再開できると予想される場合:-)、物理RAMの容量よりも多くの領域をスワップパーティションに割り当てることをお勧めします。


3

私のVPSプロバイダーはサーバー用のスワップスペースさえ提供していません。

私が日常的に目にするほとんどのサーバーは、スワップレスです。

編集する

しかし-あなたはJVMを実行している場合、作成してくださいあなたが持っている、少なくともあなたがなりますよう多くのスワップ領域として、これまでに設定-Xmxための知られている 問題 JVMで。

つまり、JVMが現在使用しているよりも多くのメモリを必要とする場合(ただし、JVMはまだメモリを消費していませんXmx)、次のようになります。

  • 自身をディスクにスワップします
  • 新しいメモリを割り当てます
  • 自分自身をRAMに読み戻す

つまり、スワップがより小さい場合、Xmx失敗する可能性があります。

バグレポートを引用するには

最善の方法は、このエラーが発生したマシンのスワップサイズを増やすことです。

JVMで作業するときは安全にプレイし、スワップを物理メモリと同じに設定します。


2

最近のハードディスクドライブの速度を考えると、大きなスワップはスラッシングへの誘いにすぎません。SSDはこの傾向を逆転させるかもしれませんが、ディスクの最大転送速度が300MB / sであるため、2〜4GBでのスワップにはしばらく時間がかかります。

昔(つまり、Linux 1.2、i386、SunOS 4.x)、おそらく5〜15 MBのデーモンプロセスが実行されており、4〜32 MBのRAMからどこかにあるため、ブロックされたデーモンはI / Oは実際のパフォーマンスに影響を与えることなく交換できます...そして、ユーザープログラムには2〜3 MBのRAMしか使用できない可能性があるため、これらの方が適しています。スワッピングは非常に理にかなっています。

現在、私の環境では、ほとんどのサーバーに単一メモリの重いワークロードがあり、RAMはかなり正確に推定できます...緊急事態、暴走したプロセスなどのためにスワップがあります。

例外は眠るかもしれないノートパソコンやワークステーション用です。多くのOSは、スワップ領域を使用してサスペンドイメージを保存します。その場合、スワップは物理メモリよりも大きくする必要があります。suspend2 / tuxoniceを備えたLinuxでは、suspend-to-diskをサポートするために、スワップサイズに2xRAMが必要です。


昔、System V 3.2以前は、RAMサイズのスワップを使用していました。BSDほど洗練された仮想メモリシステムではなかったため、どれも壊れていませんし、もっと無駄になっています。
kmarsh 2009

2

最近、32GBまたは64GBサーバーを実行している場合、デフォルトの4GBのスワップは安全な量です。それより大きなものは、利用可能な物理RAMが多すぎるため、やり過ぎです。


1

理想的には、スワップをまったく使用しないでしょう。2xRAMは、何年も前から残っているものです。

あなたがそれについて心配しているなら、私は次のようなことをします:

Max Memory Requirement - Physical Ram = Swap

16GBは個人的には大きすぎると思います。


1

昔は、できるだけ多くのものが欲しかったのですが、最新の* nixカーネルでのメモリ消費は過去のものです。古い格言は「あなたの記憶の2倍」でした。2GBまたはマシンがRAMに搭載しているスペースの量は、今日では、年齢によって必要な場所に近くなります。


1

スワップは、カーネルパニック後にダンプを保存するためにも使用されます。これらのダンプを分析して興味があり、別のダンプ先を指定していない場合、スワップは少なくともRAMと同じ大きさである必要があります。


0

必要なスワップの量を示す単一のアルゴリズムはありません。実際には、サポートする予定の最大の負荷をシステムにかけ、システムが実際に使用するリソースの量を調べる必要があります。それに応じてスワップファイルを設定します。

物理RAMの場合は、システムが実際に処理する予定の「巡回」負荷の下に置き、それに応じて購入する必要があります。待機時間の短いシステムでは、クルーズロード内でスワッピングを行うべきではありません(これは、スワップが割り当てられていない、または使用されていないことと同じではありません)。 、しかし一般的には、スワッピングをできるだけ少なくする必要があります。

もちろん、低価格でパフォーマンスをトレードオフできます。

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