
FlightRadar24におそらく正常にフィードできるようになって翌朝、いつものようにシステムの稼働状況を確認していたら飲んでたお茶を吹き出しそうになった。
上側のグラフがメモリの使用状況で、朝9:00に日替わり処理で何かしらが行われてキャッシュ・バッファが100MBほど減少した。このホストは元々はタイムゾーンを日本時間にしていたんだけど、昨日の記事のようにfr24feedが文句を言うのでGMT+0にした。だから、日本より9時間遅れの時刻を指して動いているので日替わり処理は朝の9時に行われる。
で、メモリの方は使用量が減っているのでそれで良いんだけど、下側のグラフがディスクの仕様状況で、水色が朝9:00にドカンと跳ね上がっている。 (前日の20:00頃にガクンと減っているのはログファイルが溜まっていたのを消したから。)
この水色はログを格納する/var/logのパーティション。グラフはそれぞれのパーティションの使用割合いなので例えば50%になったらディスク全容量の半分を喰ったということではなく、分割されたそれぞれの領域の中の半分を喰ったということ。
$ df -BM Filesystem 1M-blocks Used Available Use% Mounted on udev 172M 0M 172M 0% /dev tmpfs 48M 6M 43M 13% /run /dev/mmcblk0p1 14777M 1867M 12731M 13% / tmpfs 240M 1M 240M 1% /dev/shm tmpfs 5M 0M 5M 0% /run/lock tmpfs 240M 0M 240M 0% /sys/fs/cgroup tmpfs 240M 1M 240M 1% /tmp /dev/zram0 49M 19M 27M 43% /var/log ←これ tmpfs 48M 0M 48M 0% /run/user/1000
今回のホストは16GBのMicroSDカードをストレージにしているシングルボードコンピューターなので今どきのPCに登載されているHDDやSSDとは桁違いに低容量。その/var/log領域はもともと僅か50MBしか確保されていない。この領域はZRAMなのでメモリ上に圧縮されて存在している。その半分近くが一瞬で喰われたらねぇ。
しかも、そのログが内容の詰まった情報ならまだしも、(昨日も書いたけど)上の画像のような凄い無駄の塊。そして、昨日正常にフィードが行なわれるようになってからログを消したにも関わらず、今朝9:00に書き出されたのは昨日のフィードが正しく行われていなかった時間帯のステータスの変化。
その大量のデータを朝9:00にログに書き出すまでどこに溜め込んでいたのか知らないけど、MicroSDカードの領域に書き込んでたのなら勘弁して欲しい。というかfr24feedはRaspberry Pi用なら容量の関係で迂闊にログ出力して欲しくないってことも、書き換え耐性が低いMicroSDカードに書き込んで欲しくないってことも解ってる筈でしょ?
$ sudo zramctl NAME ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT /dev/zram1 lzo 239.6M 31.8M 10.6M 11.5M 4 [SWAP] /dev/zram0 zstd 50M 19M 5.1M 5.7M 4 /var/log ←これ
MicroSDカードに書き込むシングルボードコンピュータ用のLinuxならおそらくログ用のパーティションはZRAMなどのメモリディスクなどに割り当てられている筈。ログパーティションは書き換えが多いのでMicroSDカードを壊さないためにもこれがありがたい。しかし、この手のシングルボードコンピュータはメモリ登載量が少ないので割り当てられる容量も極小に。ZRAMは圧縮が効くので50MB割り当てても実際のメモリの使用量はそれよりだいぶ小さい。
$ ls -l /var/log/fr24feed
total 18492
-rw-r--r-- 1 root root 18932825 Mar 10 00:00 fr24feed.log
日替わり時に一気に19MB吐き出されたログ。その後は増えていない。最後の記録が正常にフィードできるようになる前のだし。
ログは出力しない設定にしたつもりだったけど、ステータスの変化しまくった翌日?にこんな突然大量に吐き出されたら怖い。
そこで、この /var/log/fr24feed/fr24feed.log を消して /dev/null にシンボリックリンクしておいた。
$ sudo rm /var/log/fr24feed/fr24feed.log ←削除 $ sudo ln -s /dev/null /var/log/fr24feed/fr24feed.log ←シンボリックリンクを張る $ ls -l /var/log/fr24feed total 0 lrwxrwxrwx 1 root root 9 Mar 10 07:34 fr24feed.log -> /dev/null ←確認
これでfr24feedが「王様の耳はロバの耳」って叫んでもそのまま消えて無くなるのでめでたしめでたし。
ただし、異変には気付けるようにしておかないと。
一応、dump1090-exporterでdump1090-faが動いていることは監視しているので後はフィードが順調かどうかを確認できようにしたいところ。Prometheus+Grafanaで監視できるようにpiaware-exporterとかfr24feed-exporterとか出ないかしら?
以上、いつもにも増してしょーもない日記でスミマセン。