[pgcluster: 585] Re: ロードバランサに接続できなくなる
mitani
pgcluster@ml.postgresql.jp
Mon, 01 Nov 2004 09:24:46 +0900
三谷@広島です.
> > もしそうであれば,ClusterDBのmax connextionsを250くらいに増やして試して
> > 頂けませんでしょうか.
> よろしければなぜ250コネクションが必要なのかお教えいただけませんでしょう
> か?
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の最大接続数の総和以上にしておく必要があります.
1.1系ではトランザクション以外のセッションは,コネクションプールした
数本のセッションを使うことで,更新系の高負荷時のセッションの問題を
解決しようと思っています.
=============================
三谷 篤<mitani@sraw.co.jp>
=============================