新しいものを表示
のえる さんがブースト
のえる さんがブースト

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

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

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

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

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

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

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

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

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

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

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

Mastodonのような時系列・リアルタイムのタイムラインを持つマイクロブログは、様々な処理が同時に行われるよう期待されています。

しかし、通常時は問題無く処理できても、ピーク時には処理が難しいことがあります。

たとえば、みんなが浮上してくるゴールデンタイムや、明けましておめでとうのタイミング、地震発生直後、『バルス』などなど……

このとき、キャパシティを越えた処理を失敗させるのではなく、順番待ちの行列(キュー)の最後尾に追加することで、処理を遅らせて確実に処理しようとします。

言い換えると、失敗する代わりに遅延させるように設計されています。

なお、本当に限界を越えた場合は、キューの最後に追加する処理ですら不可能で、エラーになることもあります \(^o^)/

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

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

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

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

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

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

まとめると……

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

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

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

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

スレッドを表示

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

のえる さんがブースト
のえる さんがブースト

どう?
順調に動いてる?

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

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

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

深夜の落ち着いた時間だからってのあるけど、ちゃんと捌けてるなー。新鯖偉いぞ。

古いものを表示
Fedibird

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