ハイバネーション (またはディスクへのサスペンド)。実際の休止状態ではシステムの電源が完全にオフになるため、RAM の内容が失われ、状態を永続ストレージに保存する必要があります。通称スワップ。 hiberfil.sys
の Windows とは異なります と pagefile.sys
、Linux は、オーバーコミットされたメモリと休止状態の両方にスワップ領域を使用します。
一方で、ハイバネーションは、Linux でうまく動作させるには少し厄介なようです。実際に冬眠できるかどうかは別問題です。 ¯\_(ツ)_/¯
<ブロック引用>
RAM を追加しても実行できないスワップで何ができるでしょうか?
この質問は実際には、揮発性 RAM を追加しても実現できない、不揮発性 RAM でできることは何ですか?と言い換えることができます。 .たまたまページング専用のパーティション (揮発性 RAM と対話する専用の方法) を指定したからといって、永続的な二次記憶媒体の一部であることに変わりはありません。システムを休止状態にするためにスワップ パーティションも必須ではありません。既存のパーティションに作成された「スワップ ファイル」も同様に使用できます。
最終的に、使用するのがスワップ パーティションかスワップ ファイルかに関係なく、保存するのは RAM に書き込む、または RAM から書き込むものです。スワップ パーティションが有効になっているシステムから電源コードを抜いても、そのスワップ パーティションは魔法のように消去されません。
このスワップ データは次回の起動時に読み込まれませんが (ページング ファイルには、実行されなくなったプロセスに対応するエントリが含まれるため)、一部のディストリビューションでは、適切なシャットダウンまたは適切な再起動時に意図的に破棄する手順を実行する場合があります。 、誰かがシステムからコードを引き抜くと、そのスワップ パーティションをフォレンジックに調べることができます。
あなたが言及した組み込みデバイスの場合、フラッシュは、不揮発性 RAM (NVRAM または EEPROM) ストレージの一種であり、I/O ヒット (プログラムの数で表されるフラッシュ セルの耐久性) を処理する能力があるため、消耗します。 /erase サイクル) は、揮発性 RAM に比べて見劣りします。その場所への書き込みを実行するたびに、文字通り酸化物の層を削り取ります。最終的には、電荷を永続的に保存するための酸化物が残っていないだけで、次の読み取りの前に文字通り漏れ出します。
一方、揮発性のRAMの存続可能性は、電源を切った場合、または切った場合、フラッシュと比較して事実上存在しません(理想的な実験条件では数分程度)。揮発性 RAM の場合、電荷のリークとそれに対応するフリップフロップ (入力、出力の決定、入力の再決定)、別名フィードバック制御ラッチの状態を止めるものは何もありません。
<ブロック引用>
32GB RAM でスワップなし vs.16GB RAM で 16GB スワップあり。
そのように尋ねられると、スワップはほとんどの場合お金を節約し、1 ドルあたりのパフォーマンスを向上させ、おそらくワットあたりのパフォーマンスも向上させます。
しかし、スワップは「ディスクと同じくらい遅いメモリ」以上のものです。これはメモリ ページの一時的なストレージであり、必要に応じて RAM に直接 (ファイルシステムのオーバーヘッドなしで) ロードできます。
もちろん、多くは負荷 (kind 負荷の)、スワップのアイデアは裏目に出る可能性さえあります。そのため、swapon
以外に「swappiness」パラメーターがあります。 / swapoff
それ自体、および適切なサイズについての議論。
ウィキペディアから、Linux の「スワップ」に関するこのステートメントを入手しました (「ページング」記事内)
<ブロック引用>Linux カーネルは、事実上無制限の数のスワップ バックエンド (デバイスまたはファイル...
複数のスワップ バックエンドに同じ優先度が割り当てられている場合、それらはラウンド ロビン方式で使用されます (これは RAID 0 ストレージ レイアウトに多少似ています)。
これは、スワップをハードウェア レベルでより意味のあるものに変えることができることを示しています。専用の「スクラッチ ドライブ」は、これらのスワップ アウトされたページにより良いホームを提供します。理想的には、スクラッチ ドライブは (非常に) 小さくても高速で堅牢でなければなりません。
「新しい」サイズ ルール (正方形 ルート のギガ)、あなたの例は比較する必要があります:
16 GB RAM
+ 0 GB Swap+1000 GB Disk
16 GB RAM
+ 4 GB Swap+ 996 GB Disk
本当に意味をなさないのは:
16 GB RAM+0 GB Swap
+ 1000 GB Disk
12 GB RAM+4 GB Swap
+ 1000 GB Disk
それは tmpfs (「ramdisk」) のスワップ パーティションになります。それほど有害ではないかもしれませんが、ここではまったくメリットがありません。冬眠すらできません。
(ただし、圧縮を追加する場合は、zram と zswap については以下を参照してください) それに)
スワップを理解するには、システム全体と平均負荷を考慮する必要があります。また、vm/mm (仮想メモリ管理) は複雑なシステムであるため、明確な利点を挙げるのは非常に困難です。オーバーロードされたシステムへの「スムーズな」遷移のアイデアが気に入っています。
私は 8 GB の RAM を持っていますが、スワップはありません。しかし、それでも私はその概念を擁護します。AFA は理解できます :-)
OPリンクの1つでこのredhatの引用を見つけました。私が覚えている限り、シナリオは 2 GB RAM + 2 GB スワップで、ますます増加するメモリ需要です:
<ブロック引用>... 私たちのケース [上の図] では、かなり多くのスワップが利用可能であるため、パフォーマンスが低下する時間が長くなります。
しかし、代替手段は OOM
です さらに早い!
「パフォーマンスが低下する時間」は長いですが、負荷に比例してパフォーマンスが低下するだけです。コンテキストがわかりません。大きすぎることに対して警告したいだけかもしれません。 スワップ パーティション。 聞こえる アンチスワップですが、よく見るとそうではありません。
繰り返しますが、同じ理由で、スワップはありません。自分と自分のアプリケーションがいつ上限に達したかを知りたいので、負荷を減らすか、RAM を追加購入するか、スワップ用にパーティションをアクティブにするかを決定します (1 つまたは 2 つの小さなパーティションを用意しています)。
このzramを調べました 、そして zswap 事:非常に興味深い...:
<ブロック引用>比較すると、zswap はスワップ デバイスの RAM ベースのキャッシュとして機能します。これにより、zram にはない、使用頻度の低いスワップ ページの削除メカニズムが zswap に提供されます。
一方、zram
スワップデバイスなしで動作します。私が言ったことは意味がありませんが、圧縮を考慮していませんでした.
私のポイントはこの立ち退きです 「スワップ」固有の仕組み。これはできます スワップアウトするか圧縮するかに関係なく、高負荷下で非常に役立ちます。