web-dev-qa-db-ja.com

2-4GBシステムのSWAPスペースはどのくらいですか?

2〜4 GBのRAMを備えた新しいLinuxマシン(Debian)でスワップを作成するサイズをどのように決定すればよいですか?本当にスワップ領域が必要ですか?

53
C. Ross

マシンでスワップの使用量を把握する方法はたくさんあります。一般的な提案では、RAMに基づく式を使用します。たとえば、2 x RAM、1.5 x RAM、1 x RAM、.75 x RAM、および.5 x RAM。多くの場合、式は量RAM(したがって、1GBのボックスRAMは2 x RAM swap(2GB)を使用する可能性がありますが、 RAMが16GBのボックスでは、.5 x RAM swap(8GB))を使用する場合があります。

もう1つの考慮事項は、ボックスの用途です。多数の同時実行プロセスをボックスで実行する予定であるが、かなりの数のプロセスが一定期間アイドル状態になる場合は、スワップを追加することは理にかなっています。少数の重要なプロセスを実行する場合は、スワップを追加することは理にかなっています(これは直観に反するように見えるかもしれませんが、後で説明します)。ボックスをデスクトップとして実行している場合は、スワップを追加するのが理にかなっています。

スワップを含めるかどうかについては、はい、含める必要があります。 reallyが何をしているのかを理解しておらず、正当な理由がない限り、常にスワップ領域を含める必要があります。

Linuxカーネルのしくみを参照してください。スワップは、すべての物理メモリを使い果たした場合にのみ使用されるわけではありません。 Linuxカーネルは、アクティブではない(スリープしている)アプリケーションを取得し、しばらくしてから、アプリケーションを実際のメモリからスワップするように移動します。その結果、そのアプリケーションが必要な場合、アプリケーションのメモリがスワップからRAMに読み戻される間、一時的な遅延(通常は1〜2秒)が発生します。そして、これは通常良いことです。

これにより、非アクティブなアプリケーションを「スリープ」して、アクティブなアプリケーションが追加のRAMにアクセスできるようになります。さらに、Linuxはマシン上で利用可能な(割り当てられていない)RAM=をディスクキャッシュとして使用します。これにより、ほとんどの(遅い)ディスクアクティビティがより高速で応答性が高くなります。非アクティブプロセスをスワップアウトすると、ディスクキャッシュが増え、マシン全体が速くなります。

最後に、それに直面しましょう。ディスク容量は安価です。本当に安い。スワップのために(比較的)小さな領域の塊をスワイプしない理由はまったくありません。マシンで2GB-4GBのRAM=を使用して実行している場合、おそらくRAMと同じになるようにスワップスペースを設定します。RAMが2GB未満の場合、私はまだ少なくとも2GBのスワップを使います。

更新:優れたコメントが述べられているように(そして私が含めるのを忘れていました)、「休止状態」モード(サスペンドトゥディスク)にしたいラップトップまたはデスクトップを実行している場合、常に少なくともメモリがあるのと同じくらい多くのスワップが必要です。スワップ領域は、コンピュータが「スリープ」している間、RAMの内容をコンピュータに格納するために使用されます。

54

Red Hat 推奨 大量のRAMを搭載したサーバーの次の式:

if MEM < 2GB then SWAP = MEM*2 else SWAP = MEM+2GB

システムに1 GBのRAMがある場合、スワップは2 GB、16 GBの場合は18 GBになります。

17
PEra

遅い回答です。これは選択した回答でかなりカバーされていたと思いますが、@ ssapkotaが提供する回答には、わかりやすくわかりやすい情報があります here (以下にコピー/貼り付け)。

RedHatからの非常に良い推奨事項は次のとおりです。 推奨システムスワップスペース

同じリンクからの抜粋:

過去数年間、推奨されるスワップ領域の量は、システムのRAMの量とともに直線的に増加しました。しかし、最近のシステムのメモリの量は数百ギガバイトに増加したため、現在、システムに必要なスワップスペースの量は、そのシステムで実行されているメモリワークロードの関数であることが認識されています。ただし、通常、スワップスペースはインストール時に指定され、システムのメモリワークロードを事前に判別することは困難です。次の表を使用してシステムスワップを判別することをお勧めします。

現在の表(2012年12月現在):

Amount of RAM in the system   Recommended swap space         Recommended swap space 
                                                             if allowing for hibernation
---------------------------   ----------------------------   ---------------------------
2GB of RAM or less            2 times the amount of RAM      3 times the amount of RAM
2GB to 8GB of RAM             Equal to the amount of RAM     2 times the amount of RAM
8GB to 64GB of RAM            0.5 times the amount of RAM    1.5 times the amount of RAM
64GB of RAM or more           4GB of swap space              No extra space needed

元のテーブル:

Amount of RAM in the System     Recommended Amount of Swap Space
4GB of RAM or less              a minimum of 2GB of swap space
4GB to 16GB of RAM              a minimum of 4GB of swap space
16GB to 64GB of RAM             a minimum of 8GB of swap space
64GB to 256GB of RAM            a minimum of 16GB of swap space
256GB to 512GB of RAM           a minimum of 32GB of swap space 
12
ubiquibacon

それはあなたがそれで何をしているかにかなり依存します。適切なワークロードがあれば、RAMが16MBでも16384MBでも、実際にはスワップ領域は必要ありません。実際、ほとんどの組み込みLinuxデバイスは何もなしで実行されます(何にスワップしますか?)

RAM価格を考慮すると、アクティブな計算にスワップを使用することはおそらくないでしょう。それで、何が残っていますか?

  1. デスクトップでは、ディスクへのサスペンドにスワップスペースが使用されます。このスワップスペースは、メモリの内容がどの程度圧縮されているかに応じて、約1×RAMである必要があります。
  2. 非アクティブなタスクをRAMから削除して、ディスクキャッシュ用の領域を増やすことができます。
  3. 同じですが、アクティブなプロセスがヒープ/スタックの代わりにそれを使用できるようにします

(2)と(3)はワークロードに大きく依存します。私のデスクトップでは、(2)で4GB以上を簡単に使用できます。他のデスクトップで実行されているvimsやxtermなどをそのままにしておくことからです。

私が実行するほとんどのサーバーでは、スワップアウトされるものはほとんどなく、1〜2GBのスワップ(RAM量に関係なく)は問題ないようです。

8
derobert

それは、実行する予定のサービスとアプリケーションによって異なります。 free -mを使用してメモリ使用量を監視し、それに応じてスワップパーティションを調整できます。

これが 興味深い議論 です。個人的に(そしてその議論を読んだ後)、私はまだ約1 GBをスワップ用に残しておきます。

4
Ivan

スワップスペースは、そうでなければすぐにメモリが不足する場合に「パディング」として機能します。

プロセスが利用可能なすべてのRAMを消費すると、一部のマシンの実行が非常に遅くなりますが、通常は回復できます。また、どのプロセスが問題の原因であるかを確認するのも簡単になります。 。

2
starblue

私はDebianと直接話すことはできませんが、2 GBを超えるRAMにアクセスすると、元の2xRAMの式が通常1xRAMに変化することを知っています。 16 GBに達すると、RAM=提案は再び.75xRAMに下がります。

もちろん、これはSolarisにも当てはまり、実際にはOracleのインストールに使用される指標であるため、YMMVはそこで実行するアプリに応じて異なります。

2
Milner

私は常にRAMと同じくらい(少なくとも)スワップを行います。いつかマシンを休止したいときのために。少ないで作業できますが、できません。

最近のHDDスペースは安いので、スワップスペースを譲ることを躊躇しません。

2
Martin C.

私は長年にわたって、WindowsマシンではRAMと同じだけのスワップができるというルールに従ってきました... Novellでは、プリンターが多ければスワップをより高く調整します... Linuxの場合、ルールとプラクティスは1GBでした2GBごとにスワップするRAMお持ちです。また、ディスクの前に配置すると、より速くアクセスできます。

  • メール/スパムゲートウェイの場合、RAMへのスワップを2倍にします
  • *サーバーの場合は、スワップをまったく使用しません。
  • lAMPサーバーの場合、1/2ルールが有効です。

  • 走行距離は、アプリケーションとGUIの使用状況によって異なります。

1
Thomas Denton

ゼロスワップでシステムを構成するには特別な構成が必要なため、小さなトークンスワップ(通常は256 MBですが、64 MBも使用しています)を使用しています。

ディスク容量は安いですが、すごいです。システムがスワッピングを開始するとすぐに、パフォーマンスはゼロになります。そしてRAMはもはやそれほど高価ではありません。

私を信じて、少し遅いプロセッサを購入し、より多くのRAMを購入してください。 3.0 GHzではなく2.8 GHzであれば、少なくとも2 GBのRAMを購入するのに十分なお金を節約できます。

0
Maneesh Kasera

私は1GBのスワップを作成し、さらに購入しますRAM 2番目に使用します。最近のコンピューターでは実際にスワップは必要ありません。RAMはとても安いです。

0
Adam Gibbins

何のためにシステムを使用していますか?個人的に私はスワップを使いません。何かがトークン512MBまたは何かを使用する場合は、常駐しているが長期間非アクティブの場合にディスクに書き込むことができます。

0
Mike McQuaid