A photograph of a zoomed-in photograph of a memory module.

ZRAMは、より多くのRAMを得るためにCPUの馬力を交換する素晴らしいソリューションですが、ZRAMにより多くのRAMを割り当てたり、より少ないRAMを割り当てたりするには、どのように設定すればよいのでしょうか?圧縮アルゴリズムはどのように変更できますか?このような変更は、どのようなシナリオで価値があるのでしょうか?UbuntuでZRAMを設定する方法については、こちらをお読みください。

知っておくとよいことZRAM、ZCache、ZSwapのどれが適しているのか分からない場合、私たちがお答えします。

現在のZRAMの状態を確認する

ほとんどの人が、UbuntuやDebianベースのLinuxディストロでzram-configスクリプトを使ってZRAMを使用しています。このスクリプトを使えば、最も簡単な方法でZRAMを利用できるからだ。コマンドでインストールできる:

sudo apt installutil-linux zram-config

次に、UbuntuマシンでZRAMがすでに有効になっているかどうかをチェックする。zramctlユーティリティを実行することで可能です:

zramctl

お使いのシステムでZswapが現在無効になっていることを確認します:

sudo -secho 0 > /sys/module/zswap/parameters/enabled

Zswapは代替RAMキャッシュ・ソリューションで、ZRAMと同様、すべてのLinuxディストロにデフォルトで搭載されている。しかし、ZRAMとは異なり、物理的なスワップ・パーティションに依存するため、古いディスクでは動作が遅くなることがある。

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

ヒント UbuntuでTRIMを有効にしてSSDドライブの寿命を延ばす方法については、こちらをご覧ください。

正しいZRAMセットアップを知る

マシンをバックアップして起動した状態で、ZRAMパーティションが報告されているかどうかを確認します:

cat /proc/swaps
A terminal showing the available swap file and ZRAM block device.

スクリーンショットでは、1つのZRAMブロックデバイスと共存している典型的なスワップファイルを見ることができます。この場合、私のシステムには4GBのRAMと2GBのZRAMがあり、これはRAMの半分の量である。しかし、作業負荷によっては、このサイズを変更したくなるかもしれません。

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

ZRAMが使用する圧縮アルゴリズムに関連する、もう1つの調整も調べる価値があります。デフォルトでは、CPUへの負荷が軽いLZOまたはLZO-RLEが使用されます。しかし最近のCPUでは、新しいZSTDアルゴリズムが通常より優れた圧縮率を提供し、CPUへの負荷が多少高くても感じられない。あなたのPCが10年未満であれば、古いLZOの変種の代わりにこのアルゴリズムを使用する価値があります。

ZRAMサイズの変更

ZRAMの設定を変更するには、"/usr/bin "フォルダにある実行スクリプトを編集する必要がある。ターミナルに以下のコマンドを入力する:

sudo nano /usr/bin/init-zram-swapping

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

A terminal highlighting the mem variable inside the zram swapping script.

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

A terminal highlighting the lower memory offset for the mem variable.

また、mem値を "1536 "に設定することで、ZRAMが使用するメモリ量を増やすこともできます。これにより、物理メモリの4分の3がZRAMに割り当てられます。

A terminal highlighting a higher memory offset for the mem variable.

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

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

cat /sys/block/zram0/comp_algorithm
A terminal showing all the available compression algorithms for the ZRAM module.

cat /sys/block/zram0/comp_algorithm 高度なカスタムZRAM構成では、アルゴリズムを混ぜて使用することができます。ただし、デフォルト値を使用している場合は、すべてのZRAMパーティションで同じアルゴリズムが使用されます。

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

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

これをコピーして下に貼り付け、同じコマンドが2つできるようにします。

A terminal highlighting the duplicate echo UNIX pipe for the ZRAM block device.

行頭の$memを"zstd "に置き換える。

A terminal highlighting the zstd string for the first echo UNIX pipe.

行末を "disksize "から "comp_algorithm "に変更する。

A terminal highlighting the comp_algorithm string for the first echo UNIX pipe.

注:別のアルゴリズムを使用したい場合は、上記のコマンドのzstdをcat /sys/block/zram0/comp_algorithmのいずれかの値に変更してください。

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

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

A terminal showing the ZRAM block device using a larger memory base and a different algorithm.

調整したスワップを積極的に使用する場合、負荷がかかった状態でのシステムのパフォーマンスを確認してください。カクカクしたり、もたついたりするようであれば、やりすぎの可能性があり、選択した値を下げる必要があります。一方、飛んでいるようであれば、もう少し増やしてもよいでしょう。

システムのZRAMを設定することは、Ubuntuシステムを最適化する第一歩に過ぎません。Ubuntuで独自のLinuxカーネルをコンパイルすることで、マシンから最大限のパフォーマンスを引き出す方法については、こちらをご覧ください。一方、よりパワフルなPCを構築しようとしているのであれば、Linux用PCを構築する際に注意すべき点は以下の通りだ。

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

Akira
Akiraは情熱的なゲーマーであり、製品レビュアーです。ゲームをしていないときは、最新のゲーミングアクセサリーを試したり、製品のレビューをしていることが多い。彼の分かりやすいスタイルは、ゲーマーが自分のニーズに最も適した製品を簡単に判断できるようにするものです。また、技術的な問題にも精通しており、その解決方法も知っている。