Ubuntu LinuxでのZRAMの設定方法

メモリモジュールのズーム写真。

ZRAMはCPUのパワーをトレードオフしてより多くのRAMを得る素晴らしいソリューションですが、ZRAMにどれだけのRAMを割り当てるかを設定するにはどうすればよいでしょうか?圧縮アルゴリズムを変更するにはどうすればよいでしょうか?そのような変更が価値のあるシナリオは何でしょうか?UbuntuでのZRAMの設定方法を見ていきましょう。

目次

  • 現在のZRAMの状態を確認
  • ZRAMのサイズを変更
  • ZRAMの圧縮アルゴリズムを変更

知っておくと良いこと: ZRAM、ZCache、またはZSwapがあなたに適しているかどうかわからない場合、私たちが答えを持っています。

現在のZRAMの状態を確認

ほとんどの人は、zram-configスクリプトを通じてUbuntuおよびDebianベースのLinuxディストリビューションでZRAMを使用しています。これは、ZRAMを最も簡単な方法で活用できるからです。次のコマンドでインストールできます:

sudo apt install util-linux zram-config

次に、UbuntuマシンでZRAMがすでに有効になっているかどうかを確認します。zramctlユーティリティを実行することで確認できます:

zramctl

システムでZswapが現在無効になっていることを確認してください:

sudo-s  
echo0>/sys/module/zswap/parameters/enabled

Zswapは、ZRAMと同様にすべてのLinuxディストリビューションにデフォルトで付属する代替RAMキャッシュソリューションです。しかし、ZRAMとは異なり、物理スワップパーティションに依存しているため、古いディスクでは遅くなる可能性があります。

コンピュータを再起動して、Ubuntuシステムに初期ZRAMブロックデバイスを作成します。

ヒント: UbuntuでTRIMを有効にすることでSSDドライブの寿命を延ばす方法を学びましょう。

正しいZRAM設定を知る

マシンが再起動したら、ZRAMパーティションが報告されているかどうかを確認します:

cat/proc/swaps

利用可能なスワップファイルとZRAMブロックデバイスを表示するターミナル。

スクリーンショットには、典型的なスワップファイルと単一のZRAMブロックデバイスが共存しているのが見えます。私のシステムには4GBのRAMと2GBのZRAMがあり、これはRAMの量の半分です。しかし、ワークロードに応じて、そのサイズを変更したい場合があります。

  • マルチメディアやビデオを扱っている場合、それらはあまり圧縮できないため、ZRAMのサイズを減らし、実際のスワップのサイズを増やすのが最善です。
  • 大規模なデータベースや他の高圧縮可能なデータを扱っている場合は、その逆です。そのようなシナリオでは、ZRAMのサイズを増やすことでコンピュータの応答性を向上させることができます。

もう一つの調整すべき点は、ZRAMで使用される圧縮アルゴリズムに関するものです。デフォルトでは、LZOまたはLZO-RLEを使用しており、CPUに優しいです。しかし、最新のCPUでは、新しいZSTDアルゴリズムが通常はより良い圧縮率を提供し、CPUへの負担がやや高くても感じられません。PCが10年未満であれば、古いLZOバリアントの代わりにこのアルゴリズムを使用する価値があります。

ZRAMのサイズを変更

ZRAMの設定を変更するには、「/usr/bin」フォルダ内のexecスクリプトを編集する必要があります。ターミナルに次のコマンドを入力します:

sudonano/usr/bin/init-zram-swapping

「init-zram-swapping」スクリプトをスクロールして、memで始まる行を見つけます。

zramスワッピングスクリプト内のmem変数を強調表示するターミナル。

これは、カーネルがZRAMブロックデバイスに割り当てるスペースの量を定義します。デフォルトでは、システムの物理メモリの半分を予約します。「1024」を「512」に置き換えることで、これを4分の1に減らすことができます。

mem変数の低いメモリオフセットを強調表示するターミナル。

ZRAMが使用するメモリの量を増やすには、mem値を「1536」に設定します。これにより、物理メモリの4分の3がZRAMに割り当てられます。

mem変数の高いメモリオフセットを強調表示するターミナル。

ZRAMの圧縮アルゴリズムを変更

同じ場所からZRAMの圧縮アルゴリズムを変更することもできます。そのためには、新しいターミナルセッションを開き、ZRAMの利用可能なすべての圧縮アルゴリズムをリストします:

cat/sys/block/zram0/comp_algorithm

ZRAMモジュールの利用可能なすべての圧縮アルゴリズムを表示するターミナル。

高度なカスタムZRAM設定では、アルゴリズムを組み合わせることができます。ただし、デフォルト値を使用している場合、すべてのZRAMパーティションは同じアルゴリズムを使用します。

以前に編集した「init-zram-swapping」execスクリプトに戻ります。そこで、次の行を見つけます:

echo$mem>/sys/block/zram0/disksize

これをコピーして、そのまま下に貼り付けて、同じコマンドの2つのインスタンスを持つようにします。

ZRAMブロックデバイスの重複したecho UNIXパイプを強調表示するターミナル。

最初のインスタンスの行の先頭にある$memを「zstd」に置き換えます。

最初のecho UNIXパイプのzstd文字列を強調表示するターミナル。

行の末尾を「disksize」から「comp_algorithm」に変更します。

最初のecho UNIXパイプのcomp_algorithm文字列を強調表示するターミナル。

注意: 別のアルゴリズムを使用したい場合は、上記のコマンドのzstdcat /sys/block/zram0/comp_algorithmからの値の1つに変更します。

変更した「init-zram-swapping」ファイルを保存し、コンピュータを再起動します。

新しいZRAM設定が機能しているかどうかを確認するには、zramctlコマンドを実行します。

より大きなメモリベースと異なるアルゴリズムを使用するZRAMブロックデバイスを表示するターミナル。

調整したスワップを積極的に使用しているときに、システムのパフォーマンスを負荷の下で確認してください。もし、動作が遅いまたはカクカクしていると感じたら、設定した値を下げる必要があるかもしれません。一方で、動作が非常にスムーズであれば、さらに値を増やすことができるかもしれません。

システムのZRAMを設定することは、Ubuntuシステムを最適化するための最初のステップに過ぎません。Ubuntuで独自のLinuxカーネルをコンパイルすることで、マシンから最大のパフォーマンスを引き出す方法を学びましょう。一方、より強力なPCを構築したい場合、Linux用のPCを構築する際に注意すべき点はこちらです。

画像クレジット: Liam Briese via Unsplash. すべての変更とスクリーンショットはRamces Redによるものです。