今回および直近の更新内容です。

・/api/v2/instance APIに対応。最近のアプリでログインできなかった原因はだいたいこれ。

・V2系のフィルターAPIおよび設定に対応。ただしWebUIはV1系APIを使い、従来通りの機能と見た目。

・投稿の自動削除設定の画面が未翻訳だったので、翻訳を適用

・リモートサーバの情報取得に失敗するケースに対処。不明なリモートサーバへ絵文字リアクションが配送されず、相手に通知されない不具合を修正

・WebFingerで3回リダイレクトするサーバに対応

・引用投稿の引用投稿の取得に失敗した場合は引用とみなさずに通常投稿と解釈しますが、本文から引用非対応サーバ向けのURL表記を削除しないよう修正

・グループのメンバー以外がメンションした際にグループに配送してしまう不具合を修正

・投稿本文および添付画像のQRコードをデコードした文字列に指定した文字列を含む投稿を拒否するスパム対策機能を追加

・添付画像のBlurhashが一致する投稿を拒否するスパム対策機能を追加

スレッドを表示

更新を適用しました。

ブラウザからアクセスしている人はリロードしておいてください。

さて、そろそろ新しいサーバの構成についてお話しましょう。

■ 移行前の構成

・メイン 4台
(Vultr東京ベアメタル)

・全文検索 3台
(さくらのVPS大阪)

・ロードバランサ 1台
(さくらのVPS東京)

・メディアプロキシ 1台
(さくらのVPS東京)

・メディア(Wasabi東京)

・バックアップ(AWS S3)

・メール1(Sendgrid)

・メール2(Mailgun)

・DNS(Cloudflare)

■ 新しい構成

・メイン 1台
(KAGOYAベアメタル / 京都)

・全文検索 3台
(さくらのVPS大阪)

・メディアプロキシ 1台
(さくらのVPS東京)

・メディア(Wasabi東京)

・バックアップ(AWS S3)

・メール1(Sendgrid)

・メール2(Mailgun)

・DNS(Cloudflare)

Vultrのベアメタルサーバ4台を、KAGOYAの1台に移行してまとめました。

KAGOYAのベアメタルは日本円払いで、転送量制限・追加課金もなく、サーバスペックに対し割安で、日本基準で日本語のサポートが得られることもあり、移行を決めました。月額で5万円ぐらい安くなっています。

何度も繋がらなくなり、ご迷惑お掛けしました。

いろいろ調整しましたが、おそらくこれで大丈夫だと思います。

あとは、夕方から夜にかけての、負荷が高い時間帯かな。ここがすんなりいけば、しばらくこの構成でやっていけるはず……

カスタム絵文字が出ない場合、WebUIやアプリの起動時の読み込みに失敗していることが考えられます。

ブラウザの場合はリロードしてみてください。

一連の不調、メモリー使用量のコントロール問題だということがわかりました。

調整して何度か再起動してますが、安定する方向に向かってます。

経路変更の方も再度適用します。

さきほどから起きている現象と対応、書き留めておきます。

データベースが何度か落ちています。データベース自身が自動shutdownする挙動です。

過去の経験から、データベース接続数などのパラメータを大きくとった時に同様の現象が起きており、過負荷が疑われるため、少し数値をしぼって様子見しています。

ルート変更については、Mastodonプロセス側の効率が向上するため、データベースからみると負荷が高まるため、無関係ではないかもしれません。

データベースが落ち着いたら、再度、ルート変更を試してみます。

原因がはっきりしないので、経路の変更を戻しました。少し様子をみます。

接続経路の変更など、大きめのチューニングを行いました。

また、それと関連があるかどうかわかりませんが、データベースに問題が発生したため対処しました。こちらは詳細を調査中です。

MastodonのWebUIは、自分の投稿をサーバに送信すると同時に、(手元の)ホームタイムラインに流し込みます。

これにより、投稿を行ったら遅延無く反映されている……ように思わせています。

実際には、サーバに送られた自分の投稿が、あとからストリーミングを通じてホームタイムラインに挿入するよう指示が流れてきます。これは無視します。

この時、ホームタイムラインの処理が遅延していると、実際に反映されるまで時間がかかります。

まだ反映されていないうちにリロードすると、サーバ上の状態にリセットされるので、さきほど投稿直後に差し込んだものが消えてしまいます。

しかし、これは見た目上のことで、あとでホームタイムラインの該当箇所が流れてくるタイミングでちゃんと流れてきます。

まとめると……

ホームが遅延しているときにリロードすると、自分の投稿が消えたように見えますが、追いついた時にちゃんと流れてきますので、ご承知おき下さい。

defaultキュー、pullキューがだいぶ積み上がっていたので、sidekiqのプロセス数とデータベースコネクション数などのパラメータを変更し、より効率の良い状態に調整しました。

負荷が高まっている状態にならないと最適パラメータがわからないので、これでだいぶ良くなったんじゃないかな。

あとは、リソースを追加投入しないでどこまでいけるか……。

スレッドを表示

ちょっと遅延入ってるみたいなので、手を打ちますねー

どう?
順調に動いてる?

サーバ移転、まだ完全に仕上がったわけでもないし、もっと投稿が流れる時間にならないと安定動作するかわからないのですが、ここまではうまくいきました。

予定していた全機能を新サーバに移し替え、現在すべて新サーバで動作しています。

深夜帯はこのままデータベースの最適化を流しておきますので、ちょっと重いときがあるかと思いますが、よろしく!

うん、何か一つは失敗するね!!

敗因は『pgbouncerのファイルディスクリプタを引き上げておくのを忘れた』でした。

そろそろ「えいやっ」をやろうかな。

目標の停止時間はだいたい5分。

何かあったら @noellabo@nightly.fedibird.com あたりから タグ付きで投稿すると思うんでよろしく。

まだ起きてる人は、どうせなら止まるところから戻るところまで立ち会うといいよ。

fedibird.comは複数のサーバで構成されていて、Webのアクセス全般、APIアクセス、ストリーミング、メディアなどを、それぞれ異なるサーバが受け持っていたりするんですが、

実はHTTPの応答に応答したサーバ識別が可能な項目を潜ませてあるので、覗くとわかるようにしてあります。

デベロッパーツールの扱いがわかれば、という話ではありますが……

古いものを表示
Fedibird

様々な目的に使える、日本の汎用マストドンサーバーです。安定した利用環境と、多数の独自機能を提供しています。