Raspberry Pi (RPi)の話です.表記は当たり前の話ですが,最近実感しています.
Rpi 3 Model B (RPi3), 同+ (RPi3+), RPi4 (4GB, 8GB)が手持ちのRPiの中で生きているものです.
これらはどれもUSB接続でSSDを接続すればある程度のスピードで動いてくれますが,SDカードのみで動いたほうが例えばテレビの裏側に置くようなアプリケーションでは都合がいいです.
とはいえ,これまでもさんざんSDカードをルートドライブとして動かすテストをしてきましたが,「使えないな」というのが体感的な総合評価です.
ところが,近年SDカードの弱点を補うかなり決め手的な技術が普及してきました.ZRAMです.SDカードは読み出し速度はまあまあだけど,書き込み速度はコンピューターのマスストレージとして使用するには致命的に遅いです.その遅い書き込み速度でメインメモリーの内容を退避するSWAPに使用するのは実用的ではありませんが,Raspberry Pi OSのデフォルトではそうなっています.
昨年はZRAMの素晴らしさを実感して,手持ちのRPiはすべてZRAMで稼働するようにしました.またLinux x86 64bitの実機や仮想マシンも全てZRAMにしました.したがってLinux x86 64bitのディスクはパーティション1つでよくなりました.
ごく最近なんですが,自分で動かしているRaspberry Pi OSを含むLinux環境で,/tmpがtmpfsでなく,ルートディスクのサブディレクトリーそのものを使っているものがいくつかあるのに気が付きました.これらをtmpfsにすることで,体感速度が上がりました.
Linux Foundationが定めるFilesystem Hierarchy Standard (FHS)では,/tmpは「再起動時に内容は保持されない」としているのでtmpfsで終了時にデータの退避などする必要も全くなしです.たまに,この定義を知らないプログラムがあって,再起動ごとに初期動作をするものもありますが,気になるほどはありません.
再起動しても内容を保持したい一時ファイルは/var/tmpを使えばよいです.
ここまでやってもどうもRPi4のworkstation (WS)はSDカードをルートにすると遅いです.体感的にRPi3+よりも遅いので,SDカードを入れ替えてみたところ,体感速度が大幅に向上したので,これはSDカードの遅さに引きずられているようです.
写真のToshibaの64GBが遅いmicroSDカードで,かなり古いものだと思います.SanDiskの32GBは去年買ったもので速いと実感するRPi3で使用しています.そこでこの際古いSDカードを新しいのに置き替えることにします.
このToshibaのmicroSDカードはまだ使えるのですが,また忘れてRPiのルートドライブに使ってはいけないのでなにか印をつけようと考えました.字は書けないのでブランド名の上を赤のマッキーで塗りつぶしました.
たぶん何か月したら塗りつぶした意味を忘れると思うので,このBLOGに記した次第です.遅いながらもまだ書き込みでエラーは出ないので使い道はあると思います.