SUSE Linux Microでのzramのインストール、設定、管理
- 概要
zramは、RAMに圧縮されたブロックデバイスを作成するカーネルモジュールです。
- 目的
この記事では、SUSE Linux Microでzramをインストールおよび設定する方法について説明します。
- 所要時間
この記事の理解には15分ほどを要します。
- 目標
RAMにブロックデバイスが設定されます。
- 要件
SUSE Linux Microの登録済み実行インスタンス。
1 zramとは #
zramは、RAMに圧縮されたブロックデバイスを作成するカーネルモジュールです。ブロックデバイスは、RAMディスク(通常は一時ファイルの保存用)として、またはスワップ用に使用できます。
1.1 zramの利点 #
zramを使用すると、次の利点があります。
高速なI/O操作 — zramのRAMベースの性質により、ブロックデバイスはデータへの非常に高速なアクセスを提供します。
メモリの節約 — データはzramを使用して圧縮されるため、かなりの量のメモリを節約できます。したがって、zramはRAMを効率的に使用し、組み込みシステムなど、RAMサイズが小さい環境に特に適しています。
ブロックデバイス上のファイルシステム — ブロックデバイス上にファイルシステムを作成できます。
1.2 zramの制限 #
zramスワップへのハイバネーションは、バッキングデバイスを永続ストレージに設定した場合でもサポートされません。
2 zramのセットアップ #
システムにzramを適切にセットアップするには、次の手順を実行します。詳細については、以降のセクションで説明します。
提供された設定に従って、RAMブロックデバイスを作成する
zram-generator
ユーティリティをインストールします。インストールの詳細については、2.1項 「zramパッケージのインストール」を参照してください。2.2項 「zramに必要な設定」の説明に従って設定を準備します。
2.3項 「デバイスユニットの作成」の説明に従って、新しいデバイスユニットを作成するコマンドを実行します。
コンピュータを再起動します。
すべてが正しく動作することを確認します。
zramctl
コマンドを実行すると、次のような出力が生成されます。>
sudo
zramctl
NAME ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT /dev/zram1 lzo-rle 96.6M 4K 79B 12K 1 [SWAP] /dev/zram0 lzo-rle 483M 4K 79B 12K 1 [SWAP]
2.1 zramパッケージのインストール #
パッケージzram-generator
は、SUSE Linux Microではデフォルトでは利用できません。次のようにのパッケージをインストールします。
>
sudo
transactional-update pkg install zram-generator
正常にインストールされたら、システムを再起動します。
2.2 zramに必要な設定 #
zramの主設定ファイルは/etc/systemd/zram-generator.conf
です。ただし、主設定ファイルのエントリをオーバーライドできるドロップインファイルのセットを含むディレクトリ/etc/systemd/zram-generator.conf.d/
を作成できます。
2.2.1 /etc/systemd/zram-generator.conf
ファイル #
このファイルはzram-generator
パッケージと一緒にインストールされないため、自分で作成する必要があります。追加するオプションについては、以下で説明します。例については、2.2.1.1項 「/etc/systemd/zram-generator.conf
の例」を参照してください。
少なくとも1つのzramデバイスを定義します。番号付けは0から始まるため、1つのzramデバイスを定義するには、設定ファイルに[zram0]
セクションを追加します。
zramデバイスセクションでは、次のエントリを定義できます。
- host-memory-limit
ブロックデバイスを作成できる場合のホストの最大RAMサイズをMiB単位で指定します。この値より大きい場合、zramデバイスは作成されません。設定しない場合、または
none
に設定した場合、ホストRAMに制限はありません。- zram-size
ホストRAMと比較したzramデバイスのサイズを指定します。デフォルト値は、
zram-size = min(ram / 10, RAM_HARD_LIMIT)
です。いずれか小さい方の値になります。ここで、ram
はMemTotal
を使用して取得されるホストRAMサイズです。ram
は、ホストメモリの合計量(MB単位)です。ram/10
– zramに使用できる合計ホストメモリの比率です。この例によれば、zramは合計ホストメモリの10%を使用できます。ホストRAMの割合を10~50%の範囲にすることをお勧めします。RAM_HARD_LIMITは、zramで使用できるRAMの最大量(MB単位)です。
min()
は、RAM_HARD_LIMITの値と計算された比率を比較し、小さい方を選択する関数です。
- compression-algorithm
zramでデータを圧縮するために使用するアルゴリズムを指定します。以下の値のいずれかを使用できます。
deflate
— 可逆データ圧縮ファイル形式lz4
またはlz4hc
— 圧縮と解凍の速度に重点を置いた可逆データ圧縮アルゴリズムlzo-rle
— 解凍速度に重点を置いた可逆データ圧縮アルゴリズムzstd
(別名Zstandard) — DEFLATEに匹敵する圧縮率を持ちながら、解凍が高速な可逆データ圧縮アルゴリズム842
— データ圧縮アルゴリズム
省略すると、カーネルのデフォルトが使用されます(通常はLZO-RLE)。
- options
スワップのオプションまたはRAMディスクのマウントオプションを指定します。
discard
に設定または省略した場合、未使用の圧縮ページはシステムの実行中にトリミングされますこのようなソリューションは、効率的なzram管理を提供します。デフォルト(discard
)をオーバーライドするには、値を空のままにします。options =
- writeback-device
非圧縮ページを保存するデバイスを指定します。その後、これらのページはzramから削除されます。
- fs-type
デバイスをディスクとして使用する場合は、そこで使用するファイルシステムを指定します。たとえば、
ext4
と指定します。- mount-point
ファイルシステムをマウントするディレクトリを指定します。このオプションは、zramデバイスがスワップに使用される場合には使用されません。
2.2.1.1 /etc/systemd/zram-generator.conf
の例 #
次の例では、RAMに2つのブロックデバイス(スワップ用のzram0
とext4ファイルシステムを使用するzram1
)を作成しています。マシンに9 GBを超えるRAMが搭載されている場合、zram0
は作成されません。各ブロックデバイスには、最大2 GBのRAMが割り当てられます。
[zram0] host-memory-limit = 9048 zram-size = min(ram / 10, 2048) compression-algorithm = lzo-rle options = discard writeback-device = /dev/zvol/tarta-zoot/swap-writeback [zram1] zram-size = ram / 10 fs-type = ext4 mount-point = /run/compressed-mount-point
2.3 デバイスユニットの作成 #
設定を準備したら、デバイスを作成して起動します。これを行うには、以下の手順を参照してください。
次のコマンドを実行して、zramデバイスユニットを作成します。
>
sudo
systemctl daemon-reload
次のようにデバイスを起動します。
>
sudo
systemctl start DEVICE_NAME
DEVICE_NAME is the name you configured in/etc/systemd/zram-generator.conf
and it is in the format/dev/zramN
モジュールが起動されたことを確認するには、各デバイスに対して次のコマンドを実行します。
>
sudo
systemctl status DEVICE_NAME
3 法的事項 #
Copyright © 2006–2025 SUSE LLC and contributors. All rights reserved.
この文書は、GNUフリー文書ライセンスのバージョン1.2または(オプションとして)バージョン1.3の条項に従って、複製、頒布、および/または改変が許可されています。ただし、この著作権表示およびライセンスは変更せずに記載すること。ライセンスバージョン1.2のコピーは、「GNUフリー文書ライセンス」セクションに含まれています。
SUSEの商標については、https://www.suse.com/company/legal/を参照してください。その他の第三者のすべての商標は、各社の所有に帰属します。商標記号(®、™など)は、SUSEおよび関連会社の商標を示します。アスタリスク(*)は、第三者の商標を示します。
本書のすべての情報は、細心の注意を払って編集されています。しかし、このことは正確性を完全に保証するものではありません。SUSE LLC、その関係者、著者、翻訳者のいずれも誤りまたはその結果に対して一切責任を負いかねます。