Keďže som bol v uplynulých dvoch mesiacoch úplne zahltený prácou, nezostal mi absolútne žiadny čas na údržbu servera. Najmä na ten typ údržby, ktorý si pred tým, ako sa urobí správne, vyžaduje trochu premýšľania alebo prieskumu.

Jednou z vecí, ktorá sa takto zanedbala, je monitorovanie voľného miesta na VPS. Ak nejaká aplikácia zje príliš veľa miesta, môže to spôsobiť problémy. Samozrejme, u väčšiny poskytovateľov VPS je pridanie ďalšieho miesta zvyčajne len otázkou pár kliknutí, ale pokiaľ to nie je obchodne kritické rozhodnutie, lepšie sa tomu vyhnúť. Zvlášť keď je potreba väčšieho úložiska spôsobená dátami, ktoré sú potenciálne bezcenné, teda cache dátami.

Kontrola servera #

Keď som dnes mal trochu voľného času, pozrel som sa na server, kde beží môj Mastodon, a zistil som, že mastodon priečinok zaberá až 92 GB! Takmer som spadol zo stoličky. Nastavil som ho len 4 mesiace predtým. Ako mohol narásť tak veľký? Od tej doby som ho ani veľmi nepoužíval. Keď som predtým prevádzkoval Pleroma, za osem mesiacov narástol na okolo 16 GB, takže sa tu zjavne dialo niečo divné.

Keď som sa pozrel, čo zaberá najviac miesta, dopracoval som sa k priečinku public/system/cache/attachments s veľkosťou 65 GB. Po ďalšom skúmaní som dospel k záveru, že server cachuje všetky federované médiá od všetkých používateľov (v tomto prípade len mňa), ktorých ľudia na inštancii sledujú. Vyzerá to tak, že server tieto mediálne prílohy ukladá ako cache donekonečna, čo spôsobuje tento problém.

Tootctl prichádza na pomoc! #

Najjednoduchšie riešenie, ktoré som našiel, je jednoducho odstrániť prílohy pomocou vstavaného príkazu tootctl:

tootctl media remove

Aby sme predišli opätovnému sťahovaniu každej mediálnej prílohy, čím sa zlepší používateľský zážitok a ušetrí sa šírka pásma, môžeme mazať len mediálne prílohy staršie ako, povedzme, týždeň:

tootctl media remove --days=7

Môj Mastodon beží ako Docker kontajner, takže príkaz potrebuje trochu upraviť:

docker exec -it mastodon_web_1 tootctl media remove --days=7

Na tvojom systéme môže byť mastodon_web_1 niečo iné, pozri docker ps. Vyššie uvedený príkaz mi uvoľnil viac ako 60 GB bez akýchkoľvek viditeľných chýb.

Bonus priestor #

S tootctl je možné potenciálne bezpečne vyčistiť aj ďalšie veci:

docker exec -it mastodon_web_1 tootctl preview_cards remove --days=7

Hoci tu boli úspory dosť malé, len niečo cez 1 GB. Treba poznamenať, že obe tieto úlohy sa dajú nastaviť ako cron job, jeden možný príklad je v odkazoch nižšie.

Odkazy #