メモリが非常に低くない場合、スワッピングはまったく意味がありません。
- ディスクはRAMより1,000,000倍遅いです。
- スワップにより、すべてがはるかに遅くなります。
RAMがない最後の瞬間を除いて、まったくアクティブにしてはいけません。なぜ? RAMが百万倍速いからです。
答え1
スワッピングによってすべてが遅くなるわけではありません。実際には作業が速くなります。
一部のアプリケーションはページをメモリにロードしますが、ライブラリやあらゆる種類の複雑さ、メモリ割り当てなどを含むアプリケーションが構築される方法で存在しますが、実行可能なパスはそれを使用しません。
それでは、これらのメモリページを捨てて他の用途に交換して解放するのはどうでしょうか?これで、必要な作業にさらにRAMを使用できますか?ディスクI / Oキャッシュを使用している場合でも、未使用のコンテンツをスワップするようにプッシュすることで、RAMをより活用できます。
今、私たちは「すべてに適した」ソリューションがないことを知っています。これが現代のシステムが許す理由です。同調;「RAMが低い場合にのみスワップを使用する」から、「機会に応じてスワップにアイテムを入れる」に移動できます。さまざまなユースケースは、さまざまな調整パラメータを使用して利点を得ることができます。ゼロスワップが最適なソリューションであるいくつかのユースケースもあります。
RAMが不足している場合にのみスワップを使用したい場合は、Linuxの「swappiness」設定が役に立ちます。
答え2
メモリが非常に低くない場合、スワッピングはまったく意味がありません。
これは、システムが100%予測可能なワークロードを実行している場合にのみ当てはまります。たとえば、処理するタスクが完全に知られており、計画された1つの特定のアプリケーションのみを実行するサーバー/VMです。
しかし、Linuxデスクトップコンピュータを実行しているとしましょう。大容量のビデオファイルを扱っていて、しばらく休憩し、ブラウザでいくつかのNetflixショーを見ることにしました。しかし、Netflixに飽きてゲームをすることにしました。
ビデオエディタをページから取り出して交換すると、ゲームのパフォーマンスが向上します。
なぜならRAMは高速で、次の用途に最適です。実際にユーザーに直面する作業を行っています。- 実際のユーザーが実際に運転している場合、これはやや予測できません。コンピュータはユーザーの心を読むことはできませんが、知識に基づいて推測することはできます。アプリケーションの場合、ユーザー入力を受け取ったときや操作を実行するときにRAMが存在する可能性があります。
答え3
スワッピングによってシステムの速度が遅くなることはありません。 RAMより多くのメモリを使用したいプログラムを実行すると、システムが遅くなる可能性があります。これらのプログラムがあまりにも多くのメモリを使用しない場合、スワップは使用されず、速度が遅くなりません。
あるいは、悪い場合は、スワップなしで同じプログラムを実行してみてください。メモリが不足すると、システムが停止します。それとも、OOMリッパーによって何かが死んだ。今スワップなしで速くなりましたか?
さて、誤動作するプログラムを得て「あ、100Gのスワップ空間と20Gのメモリを見てください。すぐそこにあるから90Gのメモリを使いましょう」と出てきたら、もっと制限的なら、そうしないなら、システムにスワップが多いほど速度が遅くなります。解決策は交換を減らすことではありません。解決策は、パラメータを調整してプログラムを制限するか、プログラムをメモリ制限コンテナに入れることです。これにより、プログラムのスワップ使用量または全体のメモリ使用量を具体的に制限できます。
スワッピングの基本的な理論は、(例えば)スワップデバイスがメモリより10倍遅いので、ページの10分の9がRAMから出てきて、10分の1がスワップから出てほしいということです。 -でも。場合によっては、システムがどのページを交換する必要があるかを予測することができ、必要に応じてすでにメモリにあるように先読みを開始することができます。あるいは、アプリケーションでメモリリークが発生し、そのページが使用されなくなった場合は、スワップを介してより多くのメモリを無料で入手できます。
スワップの要点は、スワップデバイスがRAMより10倍または100倍遅くなる可能性がありますが、RAMより10倍または100倍安いということです。したがって、より多くのラムがあるふりをし、コストを時間と交換することができます。お金とメモリスロットがある場合は、必ずより多くのメモリを購入し、スワップの使用を中止してください!
今日、私たちのコンピュータはTuring機械モデルに基づいています。しかし、理想的なチューリングマシンには無限に長いテープ(メモリ)がありますが、私たちのコンピュータには有限のメモリがあります。交換は理想的なモデルに近づく方法の1つに過ぎません。