20
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ラズパイのメモリswapを止めてSDカード寿命を延ばしたい

Posted at

経緯

常時起動しているRaspberryPiのメモリswapを無効化してSDカード寿命を延ばしたい。

使用機器

・RaspberryPi 4B (4GB)
・microSD 64GB
・Raspberry Pi OS Bookworm

swapを無効化する

事前確認

現在のswap状況は以下のコマンドで確認できます。

# 確認方法1
pi@rp:~ $ free -h
               total        used        free      shared  buff/cache   available
Mem:           3.7Gi       476Mi       2.3Gi        42Mi       1.0Gi       3.2Gi
Swap:          511Mi          0B       511Mi
# 確認方法2
pi@rp:~ $ swapon
NAME      TYPE SIZE USED PRIO
/var/swap file 512M   0B   -2

swap停止手順

1.サービスの停止

sudo systemctl stop dphys-swapfile.service

2.サービス自動起動の無効化

sudo systemctl disable dphys-swapfile.service

3.設定ファイルを編集
念のため、設定ファイルでも swap サイズを 0 に設定しておきます。

sudo nano /etc/dphys-swapfile
/etc/dphys-swapfile
CONF_SWAPSIZE=0

4.swapファイルの削除

sudo rm -f /var/swap

事後確認

swapが無効化されたことを確認します。

# 確認方法1
pi@rp:~ $ free -h
               total        used        free      shared  buff/cache   available
Mem:           3.7Gi       472Mi       2.4Gi        42Mi       1.0Gi       3.2Gi
Swap:             0B          0B          0B  
# 確認方法2
pi@rp:~ $ swapon

※無効化されているためswaponの出力は返ってきません

zramを導入する

swapを無効化したことで、メモリ不足時にシステムが不安定になる可能性があるので、代わりに zram を導入します。
zramはRAM上に圧縮領域を作ってswapとして利用するため、SDカードへの書き込みが発生せず高速に動作するのが利点です。

インストール

sudo apt install zram-tools

確認

# 確認方法1
pi@rp:~ $ free -h
               total        used        free      shared  buff/cache   available
Mem:           3.7Gi       481Mi       2.3Gi        42Mi       1.0Gi       3.2Gi
Swap:          255Mi          0B       255Mi
# 確認方法2
pi@rp:~ $ swapon
NAME       TYPE      SIZE USED PRIO
/dev/zram0 partition 256M   0B  100
# 確認方法3
pi@rp:~ $ zramctl
NAME       ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT
/dev/zram0 lz4           256M   4K   63B   20K       4 [SWAP]

※ 256MiBの zram swap が作成されました。

割当サイズ変更

zram swapが追加できましたが、256MiBでは小さいので拡張します。
割当サイズは下記の設定ファイルを編集することで変更することができます。

sudo nano /etc/default/zramswap
/etc/default/zramswap
# 物理メモリの50%を zram swap に割り当てる
PERCENT=50

# 圧縮アルゴリズム
ALGO=lz4

編集後、サービスを再起動します。

sudo systemctl restart zramswap.service
# 確認方法1
pi@rp:~ $ free -h
               total        used        free      shared  buff/cache   available
Mem:           3.7Gi       484Mi       2.3Gi        42Mi       1.0Gi       3.2Gi
Swap:          1.9Gi          0B       1.9Gi
# 確認方法2
pi@rp:~ $ swapon
NAME       TYPE      SIZE USED PRIO
/dev/zram0 partition 1.9G   0B  100
# 確認方法3
pi@rp:~ $ zramctl
NAME       ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT
/dev/zram0 lz4           1.9G   4K   64B   20K       4 [SWAP]

割当サイズを物理メモリの50%に変更することができました。
これで負荷が掛かっても安心して使用できそうです。

参考

How To Install zram-tools on Ubuntu 22.04

Raspberry PiのSDカードが壊れた!寿命を延ばす方法 5+1選!【運用編を追加】

20
12
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?