Zswap、Zram、Zcacheのユースケースの違いを理解しようとしています。長くて少しゆるい言葉で書かれた質問については、事前に謝罪してください。一連のグーグルを実行しました。zramは基本的に圧縮スワップのブロックデバイスであり、zswapはフロントスワップAPIを使用してカーネルで圧縮することを理解しています。 zswapの利点の1つは、LRUの方法でプレッシャーがかかっているときに一部のページをバッキングスワップに移動できることですが、zramはそれができません(確認してください。これが本当かどうかは不明です)。
だから、これが私の質問です:1.)デスクトップユーザーとして、zcache/zswap/zram、特にzswapとzramのパフォーマンスの違いは何ですか?たとえば、1つはメモリの断片化(過度のメモリ使用と無駄につながる種類)ではるかに良い/悪いですか?
おまけの質問:2.)デスクトップのパフォーマンス(デスクトップの応答性、最小限の破壊的なスワップ動作と正常なメモリ管理を含む)について、上記(zram + zswap、またはzram + zcacheなど)の理想的な組み合わせはありますか?
*出典の引用は大歓迎です。
私はまともなLinuxユーザー(5年)であり、カーネルを含む私のシステムがどのように機能するかを本当に理解しようとしました。ただし、私はプログラマーではなく、非常に基本的なプログラミング知識しか持っていません(3単位の大学コース)。ただし、必要に応じて技術的に対応してください。私は自分の時間にあなたの意味を解析します。
システム仕様:
Linux Mint 15
Processor:Core 2 Quad 6600 (2.4ghz)
Ram: 8G
linux kernel: liquorix 3.11 series
Storage: 128 GB SSD, 1TB HDD 5400rpm
「ramをもっと購入」というコメントはありません。私はこのマザーボードのRAMを最大にして、近い将来に$ 0のアップグレード予算を持っています。ただし、メモリを集中的に使用するプログラム(複数のブラウザーがRAMのメインコンシューマーである)を開いたままにしたいので、妥当なパフォーマンス低下の制限内でスワップしてもかまいません。
これらの質問に答えようとする最良の方法は、これらの3つが実際に何であるかを言うことです。
zRAM
zRAMは本質的にスワップデバイスに過ぎません。メモリ管理はページをスワップデバイスにプッシュし、zRAMはそのデータを圧縮して、必要に応じてメモリを割り当てます。
Zswap
Zswapは、カーネルによって内部的に割り当てられる圧縮スワップスペースであり、スワップデバイスとしては表示されません。これは、スワップデバイスを使用するのと同じ方法でフロントスワップによって使用されますが、より効率的な方法で使用されます。
Zcache
Zcacheは、frontswapおよびcleancacheのフロントエンドです。
ZcacheはzRAMに取って代わるので、実際に両方がリソースを争ってほしくないのですが、適切な状況で2つがどのようにうまく機能するかについての話もあります。とりあえず、私はそれを理解するためにそれを専門家に任せようとする気にしないでしょう。
いくつかの読書:
Cleancache vs zram?
https://lwn.net/Articles/454795/
https://www.kernel.org/doc/Documentation/vm/zswap.txt
http://www.zeropoint.com/Support/ZCache/ZCachePro/ZCacheAdvantages.html
個人的には、十分に新しいカーネルを持つすべてのシステムでzRAMを無効にしてZcacheを有効にしました(Androidデバイス)ではzRAMがまだ有効です)。
パフォーマンスに関しては、それはあなた自身を調べなければならないものです。みんな違います。ただし、理論的には、ZcacheはzRAMよりもはるかにメモリ効率がよく、2つのレベル(フロントスワップとクリーンキャッシュ)で動作し、必要に応じて(たとえば、ハードドライブ上の)スワップデバイスにページアウトできます。 CPUが多すぎる場合(使用するとは思えない)、使用する圧縮アルゴリズムを選択することもできます。
更新:Zcacheが3.11カーネルから削除されたため(現在のところ)、zRAMが新しいカーネルで唯一のオプションになりました。 https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1256503/comments/http://git.kernel.org/cgit/linux/ kernel/git/stable/linux-stable.git/commit /?id = 96256460487387d28b8398033928e06eb9e428f7