16GBのRAMがあります。32GBのスワップが必要ですか?


277

スワップスペースの経験則では、物理RAMの容量を2倍にすることが多くの箇所を読んでいます。ただし、32 GBは大したことではないようです。そんなに必要ですか?この大量の物理RAMで必要なのでしょうか?


82
ここで完全に正直に言うと、SWAPは必要ありません。RAMが使い果たされると真剣に考えない限り、すでに16GBのRAMがあります。不要です。
ウリヘレラ

57
その「経験則」は、ほとんどのPCが1桁のメガバイトのRAMを持っていたときに始まりました。それは10年以上意味がありませんでしたが、ただ...死ぬことはありません!
ニコラスナイト

17
@TheX:おそらく、人々があなたのコメントを見ると、彼らは笑うでしょう:)
ブノワ

1
2つの質問は似ていますが、もう1つの質問は冬眠に言及していません
...-Ashu

1
実際、私はそれほど悪くはないことに気付きました。スワップ= RAMではなくスワップ= RAM
icc97

回答:


189

それは完全にあなたがマシンで何をするかによって異なります。たとえば、Sapサーバーの場合は、はい、32 GBのスワップを追加します(128 GBのRAMと32 GBのスワップで動作するボックスがあります)。大量の写真やビデオを操作している場合は、少し交換するのが理にかなっています。32GBはおそらく過剰です。

しかし、私はゼロスワップとは言いません。

まれに、RAMを使い果たした場合-おそらく大きなファイルを開いて、Firefoxで長時間実行されているタブをperhepsすることは重要ではありません。そのような状況では、アプリケーションが強制終了されるとデータが失われる可能性があります。ただし、少しのスワップがある場合は、システムが続行し、スワップを取得してシステムの続行を許可します。重いスワッピングが発生するとシステムの速度が低下し、すべてのスワップが使い果たされる前に気づき、調査します。また、ディスクは非常に安いので、なぜスワップがないのですか?

コンピュータで実際に何をしているのかを尋ねずに「スワップは必要ありません」と言う人は誰でも仮定を立てています。RAMを消費するコンピューターではほとんど何もしないかもしれませんが、スワップを「必要としない」という急な判断を下す前に、RAMを使用する計画について質問することをお勧めします。私の愚見で


16
ゼロスワップにノーと言った理由を詳しく説明していただけますか?他の人は、私が休止状態にしたいのでなければ、それを必要としないことに同意するようです(私は休止しません)。
タマスシェレイ

4
@popey-それでは、システムのスワップがなくなったらどうなるでしょうか?広場に戻りましょう。
CVn

11
8 GBのRAMを搭載したシステムでは、これを言うことができます。プログラムを実行してスワップを実行すると、システムはほとんど応答しなくなります。とにかく不審な再起動を強制するよりも、OOMキラーを実行させる方が適切です。ギガバイトのRAMを必要とする非常重い作業をしているのでない限り、それほど多くのRAMがあれば大丈夫です。重い物を持ち上げる場合でも、通常はスワップスペースを必要としない処理方法があります(アプリケーション自体の健全な大規模なデータセット処理よりも効率が悪い)。
マイケルトラウシュ

6
HDDのスペースは安いかもしれませんが、SSDの場合はほとんど安くありません。DAMほど高価ではないが、それでもなお。
ミルチアチレア

4
システムが31GBのスワップを使用していて、最後のGB が必要な場合、おそらく非常に遅くなります。私見では、常に2 GBを超えるスワップが必要な場合は、より多くのRAMをインストールする必要があります。
マーティンシュレーダー

249

RedHatからの非常に優れた推奨事項を次に示します。推奨されるシステムスワップスペース

同じリンクからの抜粋:

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

現在の表(2017年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            At least 4 GB                  1.5 times the amount of RAM
64GB of RAM or more           At least 4 GB                  Hibernation not recommended

元のテーブル:

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 

76
GB単位のRAMの平方根。2のべき乗に切り上げられます。
スターブルー

2
「新しい」テーブルに矛盾があります-スワップ領域のガイド16ギガバイト32ギガバイトに応じてシステムに適しているが、4ギガバイト64ギガバイトは、システムに適している...
チャーリー

1
@チャーリーそれはあなたが64GBのRAMで作業メモリを
使い果たす

@Charlieそれは、システムメモリの量ではなく、システムメモリが不足する可能性と、その不足がどれだけ大きくなるかについてです。
フィルヒーリー

60

ああ。この投稿の答えは非常に間違っています。これは、「どのくらいのスワップ?」というGoogle検索の最初の結果の1つとして出てきます。

まず、参照の良い点はUbuntu Swap FAQです

このFAQはここで誰も言及していないという重要なポイントを作ります、そしてそれは(強調鉱山)です

大規模なプログラム(OpenOffice、Neverwinter Nights、ビデオエディターなど)により、システム全体に追加のメモリが必要になる場合があります。これらの大規模プログラムが起動時に使用するかなりの数のページは、初期化にのみ使用でき、その後は使用できません。システムはこれらのページをスワップアウトし、他のプログラムやディスクキャッシュのためにメモリを解放できます。このような場合、スワップを使用して、システムが余分な負荷を処理できるようにします。

そのため、スワップは休止状態だけではありません!未使用のページをスワップアウトするこのアクティビティは、一部のシナリオでは有益であり、他のシナリオでは有害な場合があります。システムが他の場所で使用するためにメモリを解放できるため有益ですが、そのスワップアウトが攻撃的であり、実際に必要なページをスワップアウトすると有害です。これは、アプリケーションが長時間アイドル状態になる可能性のあるデスクトップシステムで特に当てはまりますが、ユーザーは、アプリケーションを元の状態に戻すとすぐにパフォーマンスを期待します。これがどれほど攻撃的であるかの制御は、swapinessと呼ばれます。

Ubuntu Swap FAQでは、スワップピネスとは何かについて簡単に説明しています。どのように変更しますか?Ubuntuシステムのデフォルト値は60ですが、FAQではデスクトップマシンの値として10を推奨しています。

したがって、システムの特定の非常に特定の使用シナリオを知っていて、結果を非常に認識していない限り、一部の人々がこの質問で推奨しているように、スワップスペースがまったくないシステムを持たないことが一般的に非常に重要だと思います持つことができた。(個人的には、スワップなしでシステムを実行する状況はありません)スワップなしのメモリ不足シナリオでは、システムはプロセス(通常はOOMを引き起こしたプロセス)の強制終了を開始します。


7
FAQへのリンク、および意見と事例証拠の中にいくつかの正気を導入することに賛成です。
マーティフライド

1
ポイントは、そのような大きなプログラムはまだ存在せず、あなたのリンクはこれと正反対だと言うことです。この参照help.ubuntu.com/community/SwapFaq#How_much_swap_do_I_need.3F
アンワル

4
余分な負荷からメモリを解放するには、従来のHDDスワップではなくzRAMとswappiness = 60を使用します。
バラフアルビノ

25

おそらくない。コンピューターの休止状態(ディスクへのサスペンド)を計画している場合は、少なくとも16 GBが必要です。休止状態にならない場合は、数ギガバイトのスワップを許可すれば十分です(最大4〜8)。


2
スワップはまったくなく、ラップトップを正常に休止/一時停止できます。
スクリブ

8
@scribuこれは面白いですね。私は多分どこかで完全に(つまり抜き、取り外しバッテリー)、ノートパソコンの電源をオフにするためにRAMの内容を保存しなければならないので、スワップファイルがあることを疑う
バンディ

9
16GBのRAMと4GBのスワップで休止状態にすることはかなり可能です。休止状態に行くときは、4GB未満を使用する必要があります。
-psusi

@psusi Linuxはメモリを圧縮しようとします。少ないスワップ=より積極的な圧縮。
val

16

経験から私はこれを言うことができます:

私が3年間4GBのRAMを使用しているのを見て、Ubuntuのスワップ使用量は約60MBでしたが、これは非常に集中的なタスクを実行する場合のみです。数週間前、16GBのRAMを搭載したPCの使用を開始しましたが、スワップの使用率はこれまで0%のままでした。複数のコンパイル、ビデオレンダリング、その他の集中的なタスクを実行しました。スワップに変更はありませんでした。1KBの変更でさえありません。

基本的に、Ubuntuでは、メモリRAMが多いほど、タスクでスワップを使用する必要が少なくなります。16GBのRAM、または8GBのRAMでも十分です。16GB PC 8 Virtualbox PC(それぞれ1GB〜2GBのRAM)を使用しました。私は720pビデオをコンパイルしてレンダリングしましたが、そのような状況でもスワップは変更されていません。

そうは言っても、2倍のメモリRAMのルールはLinuxベースのシステムには適用すべきではありません。メモリがもっとある場合はさらにそうです。ただし、休止状態のプロセスはRAM内のすべてを取得してスワップに配置するため、RAMサイズと同じサイズのスワップまたは休止状態にする予定がある場合は、RAMサイズと等しい最小サイズが必要です。スワップ用。

もう1つの詳細は、一部のアプリ(すべてではない)がスワップからの読み取りを強制することです。だから少し持っておくといい。完全に無効にすることは、メモリ不足またはOOMのポイントに到達した場合に非常に悪いです。この時点でスワップがない場合、カーネルが異なるRAMアプリの使用をスワップイン/アウトする方法はなく、最終的には使用頻度の低いものを削除し始めます。

ホームデスクトップの意思決定に役立つ場合は、4年以上この回答を更新した後、16 GB、32 GB、および64 GBのRAM PCを使用しました。わずか128MBのスワップでテストしたところ、休止状態にする場合を除いて、より大きなスワップは必要ないことがわかりました。私はそれらでクラウド環境を使用しました、lxc、virtualbox、wine、あなたはそれに名前を付けます。私はビデオをopenshot、kazam、handbrake、audacityでレンダリングしました。Gimp、Blender、Inkscape、さらにはLibreOfficeスイート全体を使用しました。スチームでプレイしたこともあり、これらのシナリオではスワップは使用されませんでした。もちろん、何らかの方法でラムの全量を使用することになった場合、最終的には使用されますが、一般に、ラムが多いほど、必要なスワップは少なくなります。

ちょうど私の2セント。


1
私はあなたがそれを説明し経験した方法が大好きです...これは素晴らしい答えです
援助


6

ほとんどの場合、私はあなたがまったく必要としないと思います。おそらく、非常に大きな画像ファイル、または多くのRAMを必要とする他のアプリを編集する場合、いくつか必要になるかもしれません。

私のシステムであなたのものと同様に使用されたものを見たことはありません。実際、一時的に1週間または2週間誤って無効にしましたが、問題に気付くことはありませんでした。ただし、主に1TBを超える空き容量があるため、スワップドライブ用に約5GBを維持し、すべてのスペースをそのまま使用するわけではありません。


Wubiを使用して冬眠したときに、一度使用したのを見たことを覚えています。
ウラダシュラム

2
休止状態を使用する場合、マシンの状態を保存するのに十分なスワップスペースを確保することは十分な理由です。スワップ領域を既に使用しているのに十分な時間を使用している場合を除き、使用可能なメモリ以上の容量が必要になることはないと思います。
マーティフライド

3

RAMが1GBを超える場合、通常はUbuntuで十分です。「スワップ= RAM x2」ルールは、RAMが256または128mbの古いコンピューター用です。

したがって、通常、4 GBのRAMには1 GBのスワップで十分です。8 GBは多すぎます。


3

休止状態を使用する場合、RAMの量と同じ量のスワップを保持しても安全です。

スワップの量に関する一般的な経験則については、こちらをお読みください。

https://help.ubuntu.com/community/SwapFaq

あなたの場合、RAMに合わせて4 GBで十分だと思います。


2

休止状態を使用したい場合にのみスワップが必要です。これはハードドライブのスペースの無駄です。


6
Hibernateにはスワップ領域が必要ですが、RAMサイズほどのバイではなく、休止状態の瞬間のRAM使用量と同じくらいです。RAMはまだアクティブでデータを保持しているため、スリープにはスワップは必要ありません。
ドニークルニア

@Donny Kurnia知らなかったのに感謝します。しかし、私のラップトップは、スリープ状態になるときにスワップを使用するのが好きです。編集できるかどうか調べます。
レンズ

1
スワップを無効にしsudo swapoff -aてからラップトップをスリープさせて実験することができます。
ドニークルニア

@Donny Kurnia私はそれをやったが、睡眠はまだ機能します。
レンズ

2

ハイバネーションを使用する場合、スワップには少なくとも物理RAMと同じ量が必要です。


1

4GBのRAMとUbuntu 16.04を搭載したラップトップを持っています。起動後、約1GBのRAMを消費し、それでもInkscape(たとえば)は実行されません(システムモニターは50%以上の空きRAMを表示します)。 Inkscapeがフリーズ するスワップファイルを適用すると、1バイトのスワップが使用されていなくても、期待どおりに実行されます。Inkscape実行中 そのため、スワップパーティション(またはスワップファイル)をお勧めします。サイズについては、david6ルールを使用できます。


1

UbuntuのSwapFaqから:

なぜスワップが必要なのですか?

メモリを消費するプログラム場合によっては、大規模なプログラム(LibreOffice、Neverwinter Nights、ビデオエディターなど)により、システム全体に追加のメモリが必要になることがあります。これらの大規模プログラムが起動時に使用するかなりの数のページは、初期化にのみ使用でき、その後は使用できません。システムはこれらのページをスワップアウトし、他のプログラムやディスクキャッシュ用にメモリを解放できます。このような場合、スワップを使用して、システムが余分な負荷を処理できるようにします。

ハイバネーション(ディスクへのサスペンド)ハイバネーション機能(ディスクへのサスペンド)は、マシンの電源を切る前にRAMの内容をスワップパーティションに書き出します。したがって、スワップパーティションは少なくともRAMサイズと同じ大きさでなければなりません。現在Ubuntuで使用されている休止状態の実装であるswsuspには、スワップまたはサスペンドパーティションが必要です。アクティブなファイルシステムではスワップファイルを使用できません。

不測予測不可能な事象が起こるとされますすることができます(プログラムはクレイジー行く、あなたが思ったよりもはるかに多くのスペース、またはイベントのその他の予測不可能な組み合わせを必要とするいくつかのアクション)。このような場合、swapを使用すると、何が起こったのかを把握したり、作業を完了したりするための余分な遅延が発生する可能性があります。

メモリ使用量の最適化機械的なハードドライブはRAMよりかなり遅いため(SSD-ソリッドステートドライブ-ストレージは物理ドライブほど遅くはありませんが、それでもRAMよりは遅いです)、ファイルが必要な場合(ビデオのようなデータファイル、 Firefoxなどの実行可能ファイル、またはライブラリ)、LinuxカーネルはファイルをRAMに読み込んでそこに保持します。そのため、次に必要になったときに既にRAMにあり、データアクセスがはるかに高速になります。ディスクの読み取りを高速化するRAMの部分は、「キャッシュメモリ」と呼ばれます。応答性の面で大きな違いが生じることに気付くでしょう。Linuxカーネルは、プログラムによって予約されたRAM(実際には使用されていない)をスワップに自動的に移動するため、キャッシュメモリを拡張するというより良い目的に役立ちます。

スワップパフォーマンスの最適化スワップスペースはディスクデバイスを使用するため、システム自体もスワップ操作に必要な同じディスクデバイスを使用している可能性があるため、これにより、スワップスペースを大幅に使用するシステムでパフォーマンスの問題が発生する可能性があります。この問題を軽減する1つの方法は、別の物理ドライブにスワップスペースを確保して、そのリソースに対する競合を軽減または排除することです。

どのくらいのスワップが必要ですか?

物理メモリ(RAM)が1 GB未満の場合、スワップスペースは基本的にRAMの量と同じにすることを強くお勧めします。また、システムの利用可能なハードディスク容量に応じて、スワップスペースは最大のRAM容量の2倍にすることをお勧めします。

最新のシステム(> 1GB)の場合、スワップ領域は、「休止状態を使用する場合」の物理メモリ(RAM)サイズと少なくとも等しくなければなりません。そうでない場合は、最小のround(sqrt(RAM))と最大RAMの2倍の量。実際に使用するよりも多くのスワップ領域を持つことの唯一の欠点は、それのために予約するディスク領域です。

「収益の減少」とは、RAMサイズの2倍以上のスワップスペースが必要な場合は、ハードディスクドライブ(HDD)アクセスがRAMアクセスよりも約10³遅いため、RAMを追加することをお勧めします。突然15分以上かかります!さらに、高速ソリッドステートドライブ(SSD)で1分以上...

シナリオ例

    RAM(GB) No hibernation  With Hibernation  Maximum
      1      1                2                   2
      2      1                3                   4
      3      2                5                   6
      4      2                6                   8
      5      2                7                  10
      6      2                8                  12
      8      3               11                  16
     12      3               15                  24
     16      4               20                  32
     24      5               29                  48
     32      6               38                  64
     64      8               72                 128
    128     11              139                 256


0

私はあなたがそれを逆に手に入れたと思う。SWAP勧告では、最大16GBが必要です。したがって、SWAPは実際のRAMサイズの1/2でなければなりません。しかし、それでもまだたくさんのスペースがあります。必要なものに依存します。"hibernate"を使用しない場合、ディスク領域に余裕がある場合は、約4〜8 GBを維持してください。16GBを持っているので、強力なリソースを必要とするコンピューターを使用している可能性があります... 16GBから32GBのSWAPも同様に有益かもしれません。

2GB RAMと1GB SWAPがあります。私はそれで大丈夫ですが、それは私の意見です。他のコメント/提案を見て、彼らの言うことを見てください。


0

ここで引用するための参照を見つけることができませんでしたが、RAM内のデータ全体をスワップアウトする必要があるアプリケーションを使用する場合、「RAMサイズ+128 MB」または「1.25倍のRAMサイズ」(iどちらが正しいか忘れてしまった)RAMが2 GB以上あると仮定します。RAMが2GB以下の場合、スワップとして2倍のRAMサイズを使用することをお勧めします。IBMのドキュメントに基づいて、IBM AIXの以前の組織でこの推奨事項に従いました。RAMがメモリにロードされるデータを処理するのに十分ではない場合、スワップの使用はRAMからデータを安全に移動するため、これはほとんどの* nixに当てはまると思います。「free」コマンドを使用して、実際に使用されているスワップの量を評価できます。


0

私はMacラップトップを持っています。Windowsよりも優れていますが、メモリを維持すると、特にブラウザでメモリが忍び込みます。そのため、最終的にはメモリがいっぱいになります。他の人が指摘しているように、スワップがあれば、生き残り、気づき、何かを殺すことができます。しかし、もっと重要なのは、スワップがある場合、一部のページがスワップアウトされ、続行できることです。

したがって、マシンを長時間放置することを計画している場合、スワップはゾンビジャンクからメモリを解放する便利な方法です。確かに、16gを3gbで埋めるよりも時間がかかりますが、それでもいいです。この目的のために、4Gbで対応します。


0

ラップトップの場合は、少なくともスワップをRAMの容量と等しくし、休止状態を完全に許可します。デスクトップであっても、RAMの量と同じ量を保持しますが、それは私だけです。デスクトップではほとんど使用されません。


0

これに留意してください-

通常、スワップ領域のサイズは、RAMが2GB未満のシステムの場合はメインメモリの約2倍に、サイズが大きい場合はメインメモリの約1倍に設定する必要があります。

したがって、4 GbのRAMがある場合、
必要なハイバネーションスワップが3〜3.5 Gbを超えない限り、スワップは必要ありません
だからあなたの常識を使用し、ディスクスペースを無駄にしないでください


@AnwarShah-申し訳ありませんがそれを読みませんでした。私の答えを編集
アシュ

0

非常に大きなファイルを作成している場合、たとえばラップトップで機械翻訳システムを作成している場合(そうですね、どうしてそんなことをしたいのですか?私の教授は私を作っていると言えます;-))答え確かにそうです。実際のところ、現時点では32GBのスワップにしないことを後悔しています。

Ubuntuをオフィスやインターネットでカジュアルに使用する場合、2 GBのスワップも使用することはありませんが、実際には明確な答えはありません。すべてはコンピューターで何をするかによって異なります。


0

情報が多すぎ、意見が異なる。

私が提案したUbuntuデスクトップガイドライン:

 amount of RAM      recommended swap    with hibernation
----------------    ----------------    ----------------
 less than 4GB        2x RAM size         3x RAM size
   up to 8GB              4GB             2x RAM size
   up to 16GB             4GB            1.5x RAM size
  16GB or more            4GB           No extra needed

0

メモリを使い果たしたときにプログラムを実行できないのではなく、システムの速度を著しく低下させるために、スワップ領域を大幅に増やすもう1つの理由を述べた人はいないようです。障害時にリダイレクトするロードバランサーを前に持っている場合、スワップを小さく(1GBなど)したい場合があります。最初にプログラムの速度を落とす場合は、4GB +メモリサイズの平方根を検討します。物事が死ぬ前に本当に遅くするために、1.25時間のメモリサイズの最小値を維持します(せっかちな人間が最初にupめない限り-これはバックグラウンドジョブに適しています)。

開発マシンと本番マシン用に1GBを標準として構成します。実際のメモリの量は問題ではありません。必要なプログラムをすべてコンパイルし、実際に使用されていないプログラムをスワップしてディスクバッファリング用にメモリを解放しました。

それに比べて、32GBのラップトップには64GBのスワップがありますが、これは少しやり過ぎですが、ゆっくりとでも常に動作し続け、複数のメモリを消費する仮想マシンを実行することがわかっていました。予想外の効果は、32GB以上のメモリ範囲がある場合で、休止状態(32GBのメモリをリロードする)からの再開がコールドブートよりも著しく遅いことです。


0

いいえ、32GBは絶対に必要ありません。デスクトップシステムのルールとして、スワップは4GB物理RAM +数GBの間にあるべきだと思います。したがって、16GBの物理RAMの場合、スワップはおそらく4GBから18GBになります。

スワップスペースにスワップする必要があるものは、常駐するアプリケーション、つまり、使用中に実行を継続するシステムサービスとアプリケーションで使用される物理RAMの量にほぼ等しくなります(一度実行するタスクとは対照的)終了します)。デスクトップシステムでは、ブラウザ、ワードプロセッサ、電子メールプログラム、グラフィックス、またはビデオエディタを開いたままにして、他の作業を行っているとします。それらは2GB以上、おそらく4GB以上を簡単に占有します。したがって、おそらく6GBのスワップが適切です。

一般的なルールとして、必要な数GBを超えても問題はありません。スワップは通常、大量のRAMがある場合は使用されませんが、一部のプロセスが過剰な量を使用している場合に役立ち、システムがプロセスを強制終了するのを防ぐことができます。

注:OSの休止状態を使用する場合は、前述のように16GBがすべて必要になりますが、最近のコンピューターは休止状態の恩恵をあまり受けません。高速SSDを使用している場合、起動は休止状態から再開するよりも高速または高速である可能性があり、スリープモードでは休止状態からのエネルギー使用が大きな要因ではないため、現代のコンピューターは無視できるほどのエネルギーしか使用しません。

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