zram
目次
Linux カーネルモジュールレベルで RAM に圧縮ブロックデバイスを作成します。
zram#
zram は最新で2つの使用方法があります。
- swap として使用する(実メモリより圧縮される分使用範囲が少なくできる)
- 一時ファイルとして使用する(/tmp の代わり)
ここでは主に Debian 系で swap としての用途で説明しています。
swap として使用する事で特にメモリが少ない環境で効果があります。
Arch Linux 関連は Arch Linux Wiki にまとめられています。
https://wiki.archlinux.jp/index.php/Zram
デフォルトで採用される Linux ディストリビューション#
- Fedora 33 以降(したがって RedHat 系は最新版すべて)
- Raspberry Pi (Debian 13 trixie ベースから)
その他 MX Linux の MX-25 からインストーラーに zram の設定が含まれています。
MX-23 以前でも zram が考慮されていて、容易に使用できるようになっています。
https://mxlinux.org/wiki/other/zram/
systemd-zram-generator#
https://github.com/systemd/zram-generator
Debian 12 以降で使用できます。現在 Debian 系はこちらが主に採用されています。
sudo apt install systemd-zram-generator
sudo systemctl daemon-reload
sudo systemctl start /dev/zram0
使用量のデフォルト設定は zram-size = min(ram / 2, 4096) となっています。
メモリ 8GB 以上は 4GB 分、それより少なければ半分のメモリを zram へ割り当てます。
特にこの設定を変える必要はないでしょう。
zram-tools#
https://github.com/highvoltage/zram-tools
Debian 11 以降で使用できます。
ただし GitHub を見ると Public archive 状態になっています。
sudo apt install zram-tools
sudo nano /etc/default/zramswap
# 速度: lz4 > zstd > lzo
# 圧縮率: zstd > lzo > lz4
ALGO=zstd
# zram を使用する割合(%)。サイズよりも優先される
PERCENT=60
# zram を使用するサイズ
#SIZE=256
# swap として使用する際の優先度
#PRIORITY=100
sudo systemctl reload zramswap.service