web-dev-qa-db-ja.com

Linux:スワップパーティションを作成しませんか?

私はあなたが外出するときにスワップが使用されると聞いていたので不思議に思っていたRAMそして私はたくさんのRAM(8GB)... 。

スワップパーティションを作成しないとどうなりますか?

また、冬眠に必要ですか、それとも必須ではありませんか?

9

最新のオペレーティングシステムでは、RAMを効率的に使用するためにスワップ領域が必要です。システムに十分なRAMが搭載されている場合でも、RAMを無駄にすると、バッファキャッシュが小さくなり、ディスクI/Oが増加します。そのため、RAMシステムがそれを効率的に使用することを望んでいます。効率的に使用することは、RAM)からアクセスできなくなることを意味します。

一般的なシステムを起動すると、多数のサービスが起動します。プログラムは初期化コードを実行し、プロセスのプライベートメモリマッピングを変更します。これらのサービスの多くはneverが再度実行されます。それらの多くは何時間も実行されません。スワップがない場合、OSは、これらのサービスに関連付けられた変更済みのプ​​ライベートメモリマッピングをRAMに永久に保持する以外に選択肢はありません。これは、RAMディスクキャッシュ。

だからあなたはそれが必要かどうかに関係なくスワップしたいです。

13
David Schwartz

私は数年間スワップなしでデスクトップシステムを実行してきましたが、それは順調に進んでいます!異なる動作がいくつかあります。これらのいくつかは有利であり、いくつかはあなたに害を及ぼす可能性があります。それはすべてあなたが何をしているかに依存します。

1つの大きな違いは、メモリが不足したときのシステムの動作です。

スワップパーティションがない場合、OOMキラーはすぐに実行されます。プログラムでメモリリークが発生している場合、それが強制終了される可能性があります。それが起こり、システムをほぼ瞬時に回復します。

isスワップパーティションがある場合、カーネルはメモリの内容をスワップにプッシュします。異常なプロセスは、メモリの割り当てを続行できます。これは、スワップがなくなるまで発生し続けます。大きなスワップパーティションがある場合は、10分から1時間になる可能性があります。これが行われている間、システムの速度は低下します。端末を開いてプロセスを終了することができなくなります。これが起こったとき、私は通常電源コードを抜きます。

したがって、システムのOOMが発生したときにデータを失うことになるのでanywaysの場合、少なくとも(高い)回復の可能性がある前者のオプションを選択します。

12
Jeff Taylor

休止状態ではスワップが必要ですが、それ以外の場合は、それなしで問題なく動作します。

5
psusi

スワップ領域があるとパフォーマンスに悪影響を及ぼすと考えるのはよくある誤解です。パフォーマンスに深刻な影響を与えるのは、十分なRAMがないことです。スワップ領域自体は、信頼性を気にしない限り、パフォーマンスに悪影響を及ぼしません。十分なRAM(およびRAM不足は報告されていません)があると考えている場合でも、パフォーマンスにpositive影響を与える可能性があります。

考慮すべきケースは基本的に3つあります。

  • 1:すべてのアプリケーションがRAMにページのワーキングセットを持ち、「フリー」のRAMを保持できるように、内部カーネルのニーズに十分なRAMがあります。ほとんどのファイルシステムホットデータを格納するバッファキャッシュ。

  • 2:バッファキャッシュを完全に効率的に使用するための十分な空きRAMがないことを除いて、上記と同じです。

  • 3:アプリケーションが使用するページを保存するのに十分なRAMがありません。

ケース1の場合、これは本番マシンの標準であり、スワップ領域があってもなくても何も変わりません(少なくともLinuxベースのOSとメモリをオーバーコミットする他のOSでは)。

ケース2の場合、スワップ領域があると改善使用頻度の低いページをシステムがページアウトできるようになり、バッファキャッシュがその役割を果たすことができるため、全体的なパフォーマンスが向上します。

ケース3では、スワップ領域があるため、ページ分割によるパフォーマンスの低下を犠牲にして、アプリケーションを実行し続けることができます。一方、スワップ領域(または十分な大きさ)がないと、アプリケーションがランダムにクラッシュします。さらに、OS設定によっては、重要なデータを保存する機会さえ与えられずに、強力なRAM要求がある場合、OOMキラーはメモリを大量に消費するアプリケーションを強制終了する場合もあります。

この後者のケースは、あなたが選択をしなければならないケースです。確かに、応答時間が重要であり、トランザクション/プロセスを失うことは大きな問題ではないシステムのように、プロセスを強制終了することが推奨されるいくつかのユースケースがあります。

ただし、私はほとんどの状況で信じがちですが、ユーザー/管理者がRAMの不足に気づき、データを失うリスクなしにそれに応じて行動する機会を与えることができる方が良いです。

2
jlliagre

スワップパーティションを使用したくない場合は、スワップファイルを使用できます。これは、通常のファイルに保存され、スワップスペースとして使用されるファイルシステムイメージです。

次の記事では、その方法を詳しく説明しています。

1
Joseph R.

Linuxのスワップは、メモリのプレッシャーがあるとすぐにかなり厳しい要件があるようです。症状は、ほとんどすべてのRAM=がアクティブなプロセスによって使用されている場合)、システムがハードストールし、ハードディスクがワイルドに動作していることです。

どうして?

バッキングファイルのないページ(通常は動的メモリ割り当てによる)は、RAM= swapがない場合)から追い出すことはできません。カーネルは、すぐに実際に必要になる場合でも、バッキングファイルのあるページに頼りますもう一度、つまり、スワップなしでもゴミ箱に!

この微妙な問題の詳細については、このブログ投稿を参照してください。

結論:常にスワップがあります。

また、大まかなガイドラインとしてのサイズには、RAMが大量にあるシステムであっても、休止状態ではないと想定して、4〜8 GBを使用してください。詳細については、 Red Hatのスワップ領域に関するドキュメント を参照してください。

0
nalply

少し危険ですが、スワップスペースがなくても実行できます。しかし、最終的にメモリ容量を超えると、システムは予告なくほぼ即座にクラッシュします。

スワップによって基本的に提供されるのは、拡張されたメモリですが、はるかに低速です。超過した場合、スワップを開始すると、システムの寿命が長くなります。ただし、誤ったプロセスを強制終了することで、システムを保存できます。

一部のプログラムはスワップスペースの割り当てを要求します(ただし、使用はしません)。これらのいくつかは、思い出すとデータベースプログラムです。この場合も、スワップ領域がないことにより、実行される可能性のあるプログラムが制限される可能性があります。

最後に、領域をバックアップする必要がないという点でSWAPがCHEAPであるように見えます。 (私はあなたが彼らのシステムをバックアップするこれらの素晴らしい優れたシステム管理者の一人であることを望んでいます)。

作成してください。

私の経験則では、以前は2 * memory-size .....でしたが、最近では多くの場合1 * memory-sizeでも大丈夫ですが、通常は1.5 *(memory-size)を使用しています。あなたはこれほどの量を作成する必要はありませんが、私は...特にあなたがしている生産タイプの仕事がある場合はそうします。

ああそうです。休止状態では、メモリの全体的なイメージを保持するためにswapが必要です。したがって、h8ibernationを検討している場合のサイズは、AT LEAST(1 * memory-size)+ 100MB ..

0
mdpc