じさばどん
サーバー建てるとマジいろんなサーバーからサバ缶フォローが飛んできて『これが……相互互助……』ってなってる
通常だとリクエストが来た時にプールからコネクション取得して、処理が終わったら開放してる。ただ途中で外部通信とかが発生すると無駄に占有する感じで、そこからpgbouncer入れると占有開放がトランザクション単位になってさらにプロセス/サーバ間共有になる。
Rails 別にプールされてない訳ではないと思う(スレッドとプロセスが多すぎてその間でコネクションが共有出来無くて無駄が発生している)
DBコネクションプール、Appフレームワーク側が管理するものだと思ってたけどそうじゃないやつもあるのを知った
素朴な疑問ですけどフレニコ今までpgbouncer入ってなかったのです? or 1から新規構築でやりなおし?
node1プロセスで間に合わなくなったらどうしよう感あるけどそこまではそうそう到達しないから良いのか
nodeは強いね(でもあれシングルスレッドだよね(シングルスレッドで大量に処理出来るから問題ないではある))
Nodeはもう並列処理のための言語だわさ
あってる(GVLめ案件)
MastodonとかRubyあたりは並列処理にプロセスやスレッドを増やす必要があって、その増やしたスレッド間がDB接続をプール出来ないので、クエリしてなくても接続が埋まってしまうみたいなことだと思ってるわ
圧倒的せやな感(Sidekiqがめっちゃプロセス分かれるしpumaも建てまくるとプロセスがたくさん…)単純に言って別のサーバとか別のプロセス間でコネクション共有は出来無いので…
コネクションプーリングを別途導入しなければいけない、言語とかフレームワークが行けない気がするわ
Sidekiqを建てまくるとかすると接続数がね…(なのでpgbouncerが)
DBのメモリが足りないとか(Postgresは同時接続数分プロセスが立つのでその分メモリが食われるので上限が厳しい)でなければ特に気にする必要はない<pgbouncerDBのメモリと接続数が足りないなら即入れる(例 Mem1GBのfnya鯖とか)
コネクションプールというか再利用というか…<pgbouncer初期状態だとスレッド数分接続数必要なので鯖たくさんだとつらい
pgbouncerで凌ぐというかpgbouncer無しだと休んでるコネクションが勿体ない
はいってなかったか(Mastodonの場合プールがトランザクション単位なのでけっこう効く)
pgbouncer で凌ぐのありじゃな
DB接続数 (たぶんpgbouncer入りで)オーバーするって あーまあそうかー
えー、残念なお知らせですが、早速データベースの接続数上限に達し、残すところもはや札束で殴ってデカイ DB を買うという選択肢のみとなりました
Mastodonは、オープンなウェブプロトコルを採用した、自由でオープンソースなソーシャルネットワークです。電子メールのような分散型の仕組みを採っています。