やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

ラズパイ4B bookworm SWAP無効化&RAMディスク作成

 システムログやブラウザは大量にキャッシュしてディスクアクセスを頻発させる。そのせいで書込上限数がガリガリ減ってSDカードやSSDがすぐ死ぬ。これを防ぐためディスクでなくメモリにそれを肩代わりさせることで延命&高速化を図る。

  1. SWAP無効化
  2. RAMディスク

1. SWAP無効化

 まずはSWAPが使われていることを確認する。

$ free -h
               total        used        free      shared  buff/cache   available
Mem:           7.6Gi       1.9Gi       5.0Gi       431Mi       1.0Gi       5.8Gi
Swap:          511Mi       285Mi       226Mi

 SWAPの削除と無効化する。

sudo swapoff --all
sudo systemctl stop dphys-swapfile
sudo systemctl disable dphys-swapfile
systemctl status dphys-swapfile

 最後にSWAPが0Bになって消えたことを確認する。

$ free -h
               total        used        free      shared  buff/cache   available
Mem:           7.6Gi       2.2Gi       4.7Gi       598Mi       1.2Gi       5.4Gi
Swap:             0B          0B          0B

 過去記事は以下。

2. RAMディスク

ディスクの空き容量を確認する。

$ df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
udev             3.6G     0  3.6G    0% /dev
tmpfs            782M  9.7M  773M    2% /run
/dev/sda2        220G  6.3G  203G    3% /
tmpfs            3.9G  247M  3.6G    7% /dev/shm
tmpfs            5.0M   16K  5.0M    1% /run/lock
/dev/sda1        510M   69M  442M   14% /boot/firmware
tmpfs            782M   64K  782M    1% /run/user/1000

 tmpfsがRAMディスク。既に最初から勝手に作られているものもあるみたい。

RAMディスクを作る

 過去のメモを参考にしよう。

https://ytyaru.hatenablog.com/entry/2019/05/31/000000 https://ytyaru.hatenablog.com/entry/2019/03/21/000000

 パスに半角スペースがあるときは代わりに\040と入力する必要がある。

sudo mousepad /etc/fstab
proc            /proc           proc    defaults          0       0
PARTUUID=6a904b55-01  /boot/firmware  vfat    defaults          0       2
PARTUUID=6a904b55-02  /               ext4    defaults,noatime  0       1
# a swapfile is not a swap partition, no line here
#   use  dphys-swapfile swap[on|off]  for that
tmpfs           /tmp            tmpfs   defaults,size=2024m,noatime,mode=1777      0       0
tmpfs           /var/tmp        tmpfs   defaults,size=16m,noatime,mode=1777      0       0
tmpfs           /var/log        tmpfs   defaults,size=32m,noatime,mode=0755      0       0
tmpfs  /home/pi/.cache/chromium/Default/  tmpfs  defaults,size=2024m,noatime,mode=1777  0  0
tmpfs  /home/pi/.cache/chromium/System\040Profile/  tmpfs  defaults,size=2024m,noatime,mode=1777  0  0
tmpfs  /home/pi/.cache/chromium/Profile\0401/  tmpfs  defaults,size=2024m,noatime,mode=1777  0  0
tmpfs  /home/pi/.cache/chromium/Profile\0402/  tmpfs  defaults,size=2024m,noatime,mode=1777  0  0
tmpfs  /home/pi/.cache/mozilla/firefox/  tmpfs  defaults,size=4096m,noatime,mode=1777  0  0
tmpfs  /home/pi/.cache/gimp/2.10/  tmpfs  defaults,size=512m,noatime,mode=1777  0  0
tmpfs  /home/pi/.cache/lxsession/LXDE-pi/  tmpfs  defaults,size=32m,noatime,mode=1777  0  0
tmpfs  /home/pi/.cache/openbox/  tmpfs  defaults,size=32m,noatime,mode=1777  0  0
tmpfs  /home/pi/.cache/vlc/  tmpfs  defaults,size=256m,noatime,mode=1777  0  0

tmpfs  /home/pi/.npm/_logs  tmpfs  defaults,size=1m,noatime,mode=1777  0  0

 再起動するわけだが、上記の設定が原因でブートできない可能性もありうるため怖い。

reboot

 成功した。

RAMディスクを使う

 あるいはGitHubリポジトリを作成してアップロードしたりダウンロードしたり。

 ソースコードをDLしてビルドする時も活躍する。たまに容量が足りなくてエラーになることもあったが。

 基本的にRAMディスク上で作業すればSSDディスクは削られない。もう何年もこの形でコードのアップロードをしているから、ローカルのディスクには何もない。全部GitHubにある。