[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 メーリングリストの案内