[pgcluster: 586] Re: ロードバランサに接続できなくなる
三村 眞史
mimura @ ups.ne.jp
2004年 11月 1日 (月) 11:24:45 JST
三谷さま
お世話になります、三村です。
> INSERTやUPDATEなどの更新系クエリーのセッションの持ち方の問題なのですが,
> ロードバランサで受けたセッションはレプリケーションサーバを経由して,
> 裏から各クラスタDBに同じ数だけセッションが張られます.
>
> <例えばロードバランサが1本セッションを受けた場合>
>
> (1) (1)
> +--->[DB-A]--->[Rep.] -+-+
> (1) | (1) | |
> ----->[pglb]--+ [DB-B]<-----------+ |
> (1) |
> [DB-C]<-------------+
>
> つまり,ロードバランサがクラスタDB-Aに,50本のセッションを張った場合,
> レプリケーションサーバ経由で,DB-BとDB-Cにも50本のセッションが張られます.
> それとは別にDB-Bはロードバランサから50本のセッションが張られますし,
> DB-Cから(ロードバランサ経由で)50本のセッションが張られる可能性がありま
> す.
>
> したがって,更新負荷が高い場合には,各クラスタDBの
> max_connectionsの値は,ロードバランサで設定した
> 各クラスタDBの最大接続数の総和以上にしておく必要があります.
詳細なご解答ありがとうございます。
今回の場合は50×4=200以上のmax_connectionsの設定が必要というわけですね。
了解いたしました。
そのように設定して試してみます。
その場合、ロードバランサとレプリケーションサーバ内でinitdb時に作られた
postgresql.confのmax_connectionsの設定は必要でしょうか?
それ以前にロードバランサとレプリケーションサーバではpglb.confと
pgreplicate.confしか見ないのでしょうか?
重ね重ねの質問申し訳ありませんがよろしくお願いいたします。
> 1.1系ではトランザクション以外のセッションは,コネクションプールした
> 数本のセッションを使うことで,更新系の高負荷時のセッションの問題を
> 解決しようと思っています.
楽しみにしております、がんばってください!
pgcluster メーリングリストの案内