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

Linux ブログランキングへ

2021年01月17日

Ubuntu改造日記 高速化&SSD延命 圧縮zRAMファイルを/tmpにマウント その90



今回はSSDやUSBメモリ、MicroSDに入れたLinuxの延命処置として
/tmpを圧縮RAMディスクであるzRAMファイルをマウントしてみました。
/tmpを圧縮RAMディスクにする事で
書き込み頻度を減らして、圧縮してメモリを節約しながら対応します。
デメリットとしてなぜかSteamゲームが起動しませんので、
手動で切り替えて使います。
ひとまず自己責任でよろしくお願いします。

●zRAMとtmpfs
LinuxのRAMディスクとしてtmpfsがありますが、
圧縮出来ないので/tmpとかマウントすると
かなりメモリを占有してしまいます。
なんとかメモリ節約してかつアクセス量を減らせないか?
と調べていたらわたつきさんのコメントで

「ブロックデバイスをzramで作って、
 ジャーナリングしない軽いファイルシステムを
 上に乗せるくらいしかやり方ないんじゃないかと。
 ファイルシステムはext2あたりがいいかな」

というアドバイスを頂きありがとうございます。
さっそくググってやってみることに。
参考サイトはこちらです。

https://docs.oracle.com/cd/E93554_01/E69348/html/section_fdj_3t3_zq.html
https://wiki.gentoo.org/wiki/Zram
https://qiita.com/shimauma_Zzzzz/items/e3d686f0239a2878c965

●zRAMでファイルシステムを作る
参考サイトどおりにやってみます。
zramの設定済みという前提ですが。
zramを初めて導入される方はこちらをご参考に

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/

まず端末を起動して、

sudo nano zram-tmp.sh

で下記を保存します。

 #!/bin/bash

 sudo zramctl -f -s 512M
 sudo mkfs.ext4 /dev/zram1
 sudo mount /dev/zram1 /tmp
 sudo chmod 777 /tmp
 zramctl --output-all

保存したら実行。

sudo ./zram-tmp.sh

これでマウント出来ました。
試しに端末から見てみると、
zram1が新しく出来て、/tmpにマウントされていました。


$ zramctl --output-all
NAME DISKSIZE DATA COMPR ALGORITHM STREAMS ZERO-PAGES TOTAL MEM-LIMIT MEM-USED MIGRATED MOUNTPOINT
/dev/zram1 300M 228K 3.7K lzo-rle 4 0 48K 0B 48K 0B /tmp
/dev/zram0 2G 256K 252.1K lzo-rle 4 0 264K 0B 272K 0B [SWAP]

$ free -m
total used free shared buff/cache available
Mem: 3824 1204 295 201 2324 2135
Swap: 2047 10 2037


おお
ちゃんとzram1が作成してマウントされています。
メモリが少し減ってます。
本当はsystemdに登録して起動してみたのですが、
Xorgが起動しなくなりましたので自動起動は止めました。
不具合としてsteamのゲームが起動し無くなります。
よって、ゲームしないときだけ使うようにして誤魔化しています。
zramを止める場合は、

 sudo zramctl -r /dev/zram1

で削除してからSteamゲームなどを動かして下さい。
自動起動はOFFにして手動で動かしています。
原因は不明です。

●まとめ
不具合がありますが一応できました。
zRAMがファイルシステムを作成出来るとか、
/tmpを上書きマウント出来るとか知らなかったので
その発想はありませんでしたw
勉強不足ですみません。

出来るだけRAMを有効利用しながら、
ストレージの書き込み頻度を減らすことで
SSDやUSBメモリ、MicroSDのライフアップとプチフリ予防します。
RaspberryPiなんか特に良いんじゃないでしょうか?
他にも不具合があるかもしれませんが
発見したら考えます。
ひとまず自己責任でよろしくお願いします。
posted by kapper at 05:59 | Comment(0) | Ubuntu
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

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

Linux ブログランキングへ