
私はその違いを理解しようとしてきました。はいZswap、Zram、Zcacheで動作します。長くて少し粗雑な質問については、あらかじめごめんなさい。私は多くのインターネット検索を行い、zramは基本的に圧縮スワップ用のブロックデバイスですが、zswapはfrontswap 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追加購入」コメントを投稿しないでください!私はこのマザーボードのメモリを最大限に活用し、近い将来アップグレードのための予算は0ドルです。しかし、私はメモリ集約的なプログラムを開いたままにするのが好きなので(複数のブラウザが私の主なメモリ消費者です)、パフォーマンスの低下の合理的な制限内で交換するのは気にしません。
答え1
私がこの質問に答えることができる最善の方法は、これら3つの質問が実際に何であるかを伝えることです。
メモリゼロ
zRAMは本質的にスワップデバイスに過ぎません。メモリ管理はページをスワップデバイスにプッシュし、zRAM はそのデータを圧縮し、必要に応じてメモリを割り当てます。
ゼロ交換
Zswapはカーネルによって内部的に割り当てられた圧縮スワップ空間であり、スワップデバイスとしては表示されません。 frontswapはこれをスワップデバイスと同じ方法で使用しますが、より効率的な方法で使用します。
Zキャッシュ
Zcacheはfrontswapとcleancacheのフロントエンドです。
ZcacheはzRAMを置き換えるので、2つのリソースを置いて競合したくありません。しかし、正しい状況で2つの方法がうまく機能する方法についての議論があります。今はもう努力せずに専門家にこの問題を解決するように任せます。
一部を読む:
クリーンキャッシュ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を有効にしました(zRAMはAndroidデバイスでまだ有効になっています)。
パフォーマンスに関しては:それはあなたが自分で見なければならないでしょう。誰もが違います。ただし、理論的には、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