[Mastodon][Virtualization] Mastodonインスタンスの大掃除

気づけばめっちゃ溜まってた

何の話かと言うと、私が利用している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程度が削除されたようです。いやまぁなんともすごい。

仮想基盤にかかった負荷を確認する

さて、前の記事でも見てみましたが、仮想基盤の負荷傾向を見てみることにしたのです。

VMとホストの負荷関係

今回実行したtootctlコマンドですが、実はこのアプリケーション、どーしても1vCPU分の負荷しかかかりません。Mastodonのプロセス自体そうした特性があるため、SidekiqやPumaをマルチプロセスで実行させるケースが多いわけなんです。
今回4vCPUのサーバで実行を試みたこともあり、賞味のこの負荷としては全体の1/4しかかかってません。これにMastodon本来のプロセス群が負荷をかけていて、結果的に上記のグラフのとおりになっています。

ホスト側のCPU負荷状況を見てると、時々CPUコアの負荷割合が変化していることがわかります。他のVMの割り込みなども影響して、その分担が変化したものと推察しています。

Fediverse上の画像を集めて保存する動きをするがゆえに

Mastodonサーバ上に大量のデータを蓄える特性があるので、このあたりの処理をちゃんと行っていないと、いつの間にかサーバのディスクを食い尽くすということにもなるため、定期的にメディア削除処理は実行させたほうが良さそうです。

PAGE TOP