健二鯖なのですが、こちらのガイド( bit.ly/2Wnu1Mm )に従って新規に起ち上げたサーバーに、マイグレーションガイド( bit.ly/2WkNltB )にしたがってデータ移行をし、現状としてMastodon立ち上げまでは行ったのですがリモートインスタンスとのやりとりがうまくいっていません。

sidekiqを見るとほとんどが再試行になってしまい、以下のエラーが積み上がっています。
ActiveRecord::ConnectionTimeoutError: could not obtain a connection from the pool within 5.000 seconds (waited 5.004 seconds); all pooled connections were in use

スレッドを表示

@estpls Pumaの持ってるデータベースへのコネクションプールが全部使われちゃってて新しいスレッドがデータベースへの接続をもらえないで苦労してますねーってあれ? Sidekiq? Pumaからのエラーで、Postgres側に接続数の余裕があるならDB_POOLを増やしてみるといいかもしれません。

@zundan mastodon-sidekiq.serviceのDB_POOLを45→100にしてみました。

@estpls @zundan ん、多すぎないですか、そんなに増やすなら Postgres 側にも特別な設定が必要なような……

@estpls @yakitama @zundan sidekiqのスレッド数(-c 25 とか)とDB_POOLを一致させるあたりからですが、いまどうなってますかね? systemdの方はlive/dist/からもってきたヤツを使ってます?

@noellabo @yakitama @zundan live/distからもってきたデフォルトでは待機状態にどんどん積まれてしまったので→45→100と増やしていきました。スレッド数とDB_pool は一致させてます。

フォロー

@estpls @yakitama @zundan そうすると、PostgreSQLの方が音を上げる感じになりますね。

一時的に待機が増えるんじゃなくて、恒久的に処理しきれないなら、PgBouncerなどでコネクション数を抑える方向になりますね。

耐えればなんとかなるなら、Sidekiq100はキツイので、もう少し減らして耐えられるバランスを探るという手もあります。

@noellabo @yakitama @zundan PgtuneでPostgreSQLの設定を最適化してこの状態なのでやはりPgBouncer 入れてみるしかないですね。

ログインして会話に参加
DTP-Mstdn.jp

DTP-Mstdn.jpは、DTP・デザイン・印刷に関わる人々のためのMastodonインスタンスです。特定分野の専門インスタンスですので、日々のつぶやき、耳寄りな情報の共有、ディスカッション、質問とその回答、役立つスクリプトなど、他では投稿しづらい内容も、思う存分トゥートしましょう!