web-dev-qa-db-ja.com

Cleancacheとzram?

ここには、512 MBのRAMしか搭載していない古いラップトップがあります。いくつかのカーネルリリース以来、私はzramを使用して256 MBを圧縮RAMディスクに変換し、それをスワップとして使用しています。これは非常に成功していることが証明されており、システムの応答性が大幅に向上し、(ハードディスクに支えられた)スワップの使用が大幅に減少し、以前はシステムの速度が低下しました。

Linux 3.0以降、カーネルにはcleancacheも含まれています。これは、バックエンドとしてzramのようなものを使用すると、ページキャッシュからページを透過的に圧縮することになっています。私が見る限り、これはzramとは異なります。

ノートパソコンで両方を有効にする必要がありますか?または、cleancacheは実際にzramソリューションに取って代わりますか?

編集:私はこれを見つけました gentooフォーラムリンク 、ここでもCONFIG_ZCACHEを有効にする必要があるようです次に、cleancachezramを使用させて、以前と同様のものを取得します。だから私はこれをすべて有効にし、後で明示的にzramを使用しないようです。誰かがこれを確認できますか?

9
lytenyn

Zramは、圧縮されたRAMに裏打ちされたブロックデバイスを作成します。そのブロックデバイスをスワップに使用できます。通常、メモリ不足により最初にキャッシュが破棄され、ほとんどのキャッシュが解放されてメモリがまだ不足している場合にのみ、システムはスワッピングを開始します。

CleanCacheにより、ページキャッシュからのページを、ハイパーバイザーによって管理され、複数のVMゲスト間で共有されるメモリであるxen tmemなどのバックエンドに移行することができます。これの目的は、複数のVMゲストが同じデータをキャッシュして、同じRAMを使用してキャッシュするのではなく、それぞれが同じデータの独自のコピーを持つ独自のキャッシュを持っています。

ZCacheは別のCleanCacheバックエンドです。保持するハイパーバイザーにメモリを渡す代わりに(これはXen VM環境を使用している場合にのみ適用されます)、Zramと同様に、ramで圧縮されたキャッシュページを保存します。違いは、 ZCacheはキャッシュページを透過的に格納しますが、Zramはスワップに使用できるブロックデバイスを作成します。

メモリを大量に消費するアプリケーションがある場合、それらをサポートするためにスワップ領域が必要になるため、引き続きzramを使用する必要があります(非常に高いswappiness値を使用)これは、CleanCacheがキャッシュページのみを圧縮するためです。アプリケーションメモリをスワップに送信する必要があります。アプリケーションですべてのメモリを使用していない場合は、ZCacheバックエンドでCleanCacheを使用して、ディスクキャッシュを圧縮することにより、残りのメモリをディスクキャッシュにさらに効果的に使用できます。 2つの手法を組み合わせて使用​​することもできます。

9
psusi

上記の回答に加えて、テクノロジーの詳細な説明については https://lwn.net/Articles/454795 も参照してください。

私が理解していることから、zramfrontswapに置き換えられます。メインラインカーネルにはまだありませんが、固定スワップサイズを構成する必要がないという利点があります。これにより、cleancachefrontswap(両方の代わりに)の両方を簡単に有効にすることができますzramおよびcleancache、ここでメモリはzramcleancache)には使用できません。

7
lytenyn