一人Mastodonでどのぐらいのスペックあればいいかって?
通常時にメモリ2GB以上あると、安定していてトラブルも起きない。データベースも割り当てメモリが少ないとクエリが遅くなる。
Sidekiqのスレッドは5あれば十分で、まあ25スレッドでもいいけど、別にCPU x1でいい。x2ならなおよし。
スレッドを絞れば、データベースのコネクション数を減らしてWorkingメモリを十分に確保でき、性能も出せる。
ストレージは、オブジェクトストレージ使うなら25GBとかでもいける。200GBぐらいあれば、オブジェクトストレージなしという構成でいける。
低予算ならKAGOYA CLOUD VPSの大容量プランの一番下、2GB / 2 CPUの、ストレージ200GBあたりがいいと思う。月880円。
けいはんな(京都)のデータセンターで、円ドル相場の心配もない。
運用では、リモート画像キャッシュやリモート投稿の定期削除などを仕掛ける。
ケチった構成のようだけど、これでちゃんと、かなり快適なパフォーマンスでるよ。
一人鯖、遅いと、何でお金出してやってるのか見失って、運営やめちゃうよ。
新しい投稿が飛んできたら、まずアカウントを解決するんですよ。
アカウント情報を持ってなかったら、一度先方のサーバに問い合わせて、情報諸々と公開鍵をもらってくる。
この公開鍵で飛んできた投稿の署名を検証して、本物と認めて良いか判断してる。
あと、ブーストが飛んできたときも、ブースト対象の投稿を解決する。
投稿のキャッシュを持っていなかったら、一度先方のサーバに問い合わせて、そちらを先に新しい投稿として処理してキャッシュする。
ブーストされた投稿のアカウント情報がなければそれを取得する処理が挟まります。
解決したら、それからブーストが処理されます。
アカウントや投稿の処理では、アバターやヘッダ、添付ファイルなどを取得して処理するアクセスと時間も必要です。動画は特に遅いです。
リプライの親投稿も取りに行きますが、そのへんはあとから追いかけですので、遅延には影響ありません。
このへんが、相手サーバの応答速度なども含めていろいろ絡んで、同時処理されていくので、
タイムラインの表示順は簡単に入れ替わります。
主に、Fediverseへの関心に基づいた投稿を行うアカウントです。DTP・印刷に関する話をしたり、同人の話をしたり、カレーをブーストしたりします。
Mastodonのcollaborator(開発者の一員)です。また、独自機能を盛り込んだFedibirdを管理・開発しています!
Mastodonサーバ『fedibird.com』の管理者アカウントでもあります。ご連絡は当アカウントへ、サーバインフォメーションについては https://fedibird.com/about/more と @info を参照してください。