気づけばめっちゃ溜まってた
何の話かと言うと、私が利用しているMastodonサーバの画像データ。
おそらく1年以上ずーっと放置してたと思われるのですが、気づかないうちにメディアデータが蓄積しておりまして、気づけばディスク使用量が200GBを超えていたのです。
[root@biwa ~]# df -h ファイルシス サイズ 使用 残り 使用% マウント位置 devtmpfs 3.4G 0 3.4G 0% /dev tmpfs 3.4G 0 3.4G 0% /dev/shm tmpfs 3.4G 323M 3.1G 10% /run tmpfs 3.4G 0 3.4G 0% /sys/fs/cgroup /dev/mapper/centos_biwa-root 355G 205G 151G 58% / /dev/sda1 1014M 188M 827M 19% /boot tmpfs 682M 0 682M 0% /run/user/0
実は1ヶ月ほど前にえらくデータが溜まってることは気づいてたのですが、その時はLVMの拡張で一時しのぎをしてました。が、このままため続けると非常に厳しいものがあるので、tootctlコマンドを使用してメディアデータを削除することに。
削除コマンドの実行とその効果
Mastodonアプリケーションを実装しているサーバへログインし、アプリケーション実行ユーザで上記のコマンドを実行するだけです。
コマンド実行効果は驚くほどのものがあり、実に34万個のメディア、容量にして173GB程度が削除されたようです。いやまぁなんともすごい。
仮想基盤にかかった負荷を確認する
さて、前の記事でも見てみましたが、仮想基盤の負荷傾向を見てみることにしたのです。
今回実行したtootctlコマンドですが、実はこのアプリケーション、どーしても1vCPU分の負荷しかかかりません。Mastodonのプロセス自体そうした特性があるため、SidekiqやPumaをマルチプロセスで実行させるケースが多いわけなんです。
今回4vCPUのサーバで実行を試みたこともあり、賞味のこの負荷としては全体の1/4しかかかってません。これにMastodon本来のプロセス群が負荷をかけていて、結果的に上記のグラフのとおりになっています。
ホスト側のCPU負荷状況を見てると、時々CPUコアの負荷割合が変化していることがわかります。他のVMの割り込みなども影響して、その分担が変化したものと推察しています。
Fediverse上の画像を集めて保存する動きをするがゆえに
Mastodonサーバ上に大量のデータを蓄える特性があるので、このあたりの処理をちゃんと行っていないと、いつの間にかサーバのディスクを食い尽くすということにもなるため、定期的にメディア削除処理は実行させたほうが良さそうです。