にほんブログ村 IT技術ブログへ
にほんブログ村

Linux ブログランキングへ

2021年02月28日

Ubuntu改造日記 Zramの圧縮アルゴリズムzstd化と自作systemdデーモンで自動起動 その94



今日のブログはZramのzstd化と自作systemdデーモン。
標準設定はあまり良くないですが、
高圧縮のzstdと自動実行を入れます。
メモリ少ない機種で非常に役に立ちます。

●Zramとzstd
詳しくは以前のブログとプレゼン資料
まずはこちらをご参考に

How to enable the zRAM module for faster swapping on Linux
https://www.techrepublic.com/article/how-to-enable-the-zram-module-for-faster-swapping-on-linux/


Ubuntu改造日記 高速化&SSD延命 圧縮zRAMファイルを/tmpにマウント その90
http://kapper1224.sblo.jp/article/188315425.html




メモリの節約として圧縮RAMスワップのアルゴリズムを
zstdに変更します。


●Zramの登録
端末から同じ様にzramを登録します。

sudo apt install zram-config

で設定ファイルを編集

sudo nano /etc/modules-load.d/zram.conf

zramを追加して保存

zram

設定ファイルを作成して保存

sudo nano /etc/modprobe.d/zram.conf

コピペして保存

options zram num_devices=1

udevファイルを編集。

sudo nano /etc/udev/rules.d/99-zram.rules

512Mの部分は好きな容量を。1G〜など自由に

KERNEL=="zram0", ATTR{disksize}="512M",TAG+="systemd"

保存したら再起動して動いているのを確認。
ここまではテンプレ通り。
ここからが本番。
バッチファイルを作成します。

sudo nano /opt/zram.sh

コピペして貼り付け。
容量の部分は各自自由に計算して設定して下さい。

#!/bin/bash


swapoff /dev/zram0

chmod 777 /sys/block/zram0/reset
echo 1 > /sys/block/zram0/reset
echo zstd > /sys/block/zram0/comp_algorithm
echo 2685354560 > /sys/block/zram0/disksize

sudo mkswap /dev/zram0
sudo swapon /dev/zram0

どうやら、zstdに切り替える前に/sys/block/zram0/resetを1にする必要があります。
保存したら実行形式に変換。

sudo chmod +x /opt/zram.sh

これを起動時に実行する事でアルゴリズムを変更します。
ルート権限が必要になりますので、systemdに登録必要です。
それで自作systemdを作成します。

sudo nano /etc/systemd/system/zram.service

で下記をコピペして保存

[Unit]
Description = zram daemon

[Service]
ExecStart = /opt/zram.sh
Restart = always
Type = simple

[Install]
WantedBy = multi-user.target

平たくいうと/opt/zram.shを実行するだけです。
でsystemdの自動実行に登録

sudo systemctl enable zram.service

シンボリックリンクを作成しましたって出たらOK
で再起動。
動いているかを端末から確認

zramctl

NAME ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT
/dev/zram0 zstd 2.5G 528.9M 116.2M 147.8M 4 [SWAP]

こんな感じでzstdに切り替わっていたらOK


●まとめ
やってる事は、zramスワップをOFFにして再登録しているだけです。
しかし標準設定で切り替え出来ないので仕方がないです。
systemdに登録しておけば自動で実行してくれます。

メモリが少ない時は高圧縮してくれるので助かりますが、
やはり圧縮にも限界があるので日常でのメモリ節約は必要です。
必要がなければswapfileを外しておきましょう。
posted by kapper at 11:51 | Comment(2) | Ubuntu
この記事へのコメント
ZRAMは圧縮率よりも圧縮速度がボトルネックになりがちなので
デフォルトで最速のlzo-rleがオススメですよ
https://i.imgur.com/tqecZNe.png
Posted by at 2021年06月03日 09:21
環境によりけりですが、
僕個人は少ないメモリ使用量を出来るだけ節約する方を優先したいので圧縮したいです。
後は、転送速度が極端に遅いUSB2.0のストレージの環境の場合もあったり無かったり。
ここでの標準設定はzram-configパッケージの設定内容の事を示しています。
Posted by Kapper at 2021年06月03日 12:32
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

にほんブログ村 IT技術ブログへ
にほんブログ村

Linux ブログランキングへ