経緯
非力なRaspberryPiZeroシリーズ何とかして高速化したくて色々試している。前回記事ではSWAPの拡張を紹介した。
今回紹介したいのは同じSWAP関連でzramというものだ。通常のSWAPはディスク(ラズパイの場合はSDカード)にSWAP領域を設けて一時的にメモリの内容を退避するというものだがzramは物理RAM上にSWAP領域を設けることで通常のSWAPよりも高速で読み書きができるというコンセプトだ。
それじゃあ物理RAMが減っちゃうじゃあないか!と思われるだろうがそこは安心してほしいこのzram圧縮をすることで確保する物理RAM量を低減しているのだ。
特にRAMが少ないRaspberryPiZeroシリーズなどはzramから大きな恩恵を受けることができるというわけだ。それに加えてSDカードに頻繁にアクセスしなくなりSDカードの寿命も伸びるという良いことずくめ。
では、講釈はこれくらいにしておいて手順に移ろう。
手順
- zramのインストール
bash
sudo apt update sudo apt install zram-tools -y
- 設定ファイルの編集
bash
sudo nano /etc/default/zramswap
PERCENT=50 → コメントアウト解除、使用メモリ割合(0.5 = 50%) ZRAM_NUM_DEVICES=2 → 追加、並列スレッド(CPUコア数と同じくらいでOK) ALGO=zstd → 追加、圧縮アルゴリズムの指定
- サービス起動&自動起動有効化
bash
sudo systemctl enable zramswap.service sudo systemctl start zramswap.service
- 動作確認
bash
free -h
total used free shared buff/cache available Mem: 416Mi 126Mi 191Mi 296Ki 153Mi 290Mi Swap: 767Mi 23Mi 744Mi
bashlsblk
zram0というのが追加されましたね。これでOK。NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS mmcblk0 179:0 0 119.1G 0 disk ├─mmcblk0p1 179:1 0 512M 0 part /boot/firmware └─mmcblk0p2 179:2 0 118.6G 0 part / zram0 253:0 0 256M 0 disk [SWAP]