二重圧縮なしで Zram と Zswap を組み合わせることはできますか?

二重圧縮なしで Zram と Zswap を組み合わせることはできますか?

私は SSD を過度に消耗させたくないため、現在スワップのほとんどを Zram に保存しています。

しかし、システムをインストールしたときに残ったスワップ パーティションがあり、これの優先度を下げて、これも有効にしました...

私の質問は次のとおりです:-

  1. Zswap を有効にして、Zram ベースのスワップをキャッシュせずに、SSD ベースのスワップにライトバック キャッシュ機能を提供することはできますか?...

  2. 優先順位は具体的に何をするのでしょうか。単に「Y の前に X を埋める」ということだと思いますが、長期的なものを 1 つのスワップ領域に保存し、一時的なものを別のスワップ領域に保存することは可能ですか。たとえば、一時的なものを Zram に保存し、長期的なものを SSD に保存するなどです。

  3. どのスワップで Zswap がアクティブになっているかを確認する方法はありますか?

RAM へのスワップの影響 (および明らかな非論理性) は理解していますが、これは、zswap がデバイスをキャッシュするかどうかを決定するために使用する基準と、zram 上のスワップをどのように処理するかに関する質問です。

注: 99% の時間、スワップなしで実行できるだけの RAM がありますが、初期化コードではこれが普通で、おそらく奇妙なメモリ リークが蓄積し、可能であればスワップ アウトされます。そのため、zram スワップを使用すると、スワップがない場合に比べて使用量が半分になり、それ以外のオーバーヘッドはほとんどありません。また、私は多数の Linux システムをサポートしていますが、その多くはディスク ベースのスワップを使用できません。そのため、zswap と zram がうまく連携するかどうかを知りたいのです。そうすれば、状況に応じてこれが実行できるかどうかがわかります。

「Play Nice」とは、zswap は「ディスク/SSD」ベースのスワップをキャッシュする必要がありますが、zram ベースのスワップはキャッシュしないことを意味します。

答え1

これは「少し」遅いですが、誰かの役に立つかもしれません... 私は Ubuntu マシンを持っていませんが、カーネルは同じように動作すると思います。 NixOS で zram を有効にすると、zswap は無効にならないため、まさに説明されている動作になります。 これが問題になるのではないかと思い、この質問を見つけました。

私は自分のシステムを使用してスワップアウトを行い、zswap が使用されている場合はカーネル統計 (/sys/kernel/debug/zswap) を調べました。

答えは、カーネルは zram デバイスに zswap を使用しないほど賢いということです。

関連情報