Zswap、Zram、Zcacheデスクトップの使用シナリオ


11

Zswap、Zram、およびZcacheの使用例の違いを理解しようとしています。長く/少しゆるい言葉で書かれた質問については、事前に謝罪してください。一連のグーグルを実行しました。zramは基本的に圧縮スワップ用のブロックデバイスであり、zswapはフロントスワップAPIを使用してカーネルで圧縮することを理解しています。zswapの利点の1つは、LRUの方法でプレッシャーがかかっているときに一部のページをバッキングスワップに移動できることですが、zramはそれができません(確認してください。これが本当かどうかは不明です)。

だからここに私の質問です:1.)デスクトップユーザーとして、zcache / zswap / zram、特にzswapとzramのパフォーマンスの違いは何ですか?たとえば、メモリの断片化(過度のメモリ使用と無駄につながる種類)の方がはるかに良い/悪いですか?

おまけの質問: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の主要なコンシューマーである)を開いたままにしたいので、妥当なパフォーマンス低下の制限内でスワップしてもかまいません。


回答:


7

これらの質問に答えようとする最良の方法は、これらの3つが実際に何であるかを言うことです。

zRAM

zRAMは、本質的にはスワップデバイスにすぎません。メモリ管理はページをスワップデバイスにプッシュし、zRAMはそのデータを圧縮して、必要に応じてメモリを割り当てます。

Zswap

Zswapは、カーネルによって内部的に割り当てられる圧縮スワップスペースであり、スワップデバイスとしては表示されません。これは、スワップデバイスを使用するのと同じ方法で、しかしより効率的な方法で、frontswapによって使用されます。

Zキャッシュ

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/3 http://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git / commit /?id = 96256460487387d28b8398033928e06eb9e428f7


1
zswap.enabled=1Linuxコマンドラインに追加することにより、最新のカーネルでZswapが有効になります。
Ken Sharp
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.