[pgcluster: 1003] ロードバランサが無応答になります。
suzukiys @ pm.nttdata.co.jp
suzukiys @ pm.nttdata.co.jp
2007年 8月 24日 (金) 22:28:56 JST
初めまして。
鈴木と申します。
PGClusterで更新系(シーケンス値の取得+insert文)の負荷試験を実施し、
動作安定性を調査したところ、時間にばらつきはありますが、
10分〜1時間程度でロードバランサが無応答になります。
尚、ロードバランサを再起動すると復旧します。
PGCluster: 1.7.0rc7
OS:FreeBSD6.2
構成:DBサーバ3台 クラスタ3台/レプリケータ2台(DBサーバ3台中の2台に
同乗)
WEBサーバ(最大数台程度):ロードバランサを収容
<事象>
・WEBサーバ上のpgbenchによって、ロードバランサ経由で更新系負荷を掛けた場合
には、
同時コネクション数が100程度であっても安定稼動し、問題は見られなかっ
た。
・これに対しApacheBenchによって、WEBサーバ上のCGIから次々に新規のDB接続を
発生
させる形態で負荷を掛けると、10分〜1時間程度でロードバランサが無応答に
なった。
(http://ml.postgresql.jp/pipermail/pgcluster/2007-January/thread.htmlに、
類似事象について言及されていますが、これには該当しないと推定されます。)
<気づいた点>
・新規DB接続を大量発生させる形態での負荷試験では、ApacheBenchの同時接続数
が
50のときに、DBサーバ(クラスタ/レプリケータ同乗機)上のオープンファイ
ル数:約750、
オープンソケット数:約270個、netstat行数:約2000個(Time Wait状態
のソケットも含む)
に達したが、いずれもカーネルパラメータ値未満の数であった。
・ロードバランサが無応答になった際には、クラスタ/レプリケータ自体は正常で
あった。
・ロードバランサの無応答時には、ロードバランサからクラスタ向けのTCPパケッ
トが全く
発信されない状態であった。
・カーネルパラメータのTCP送信ポート範囲(net.inet.ip.portrange)を拡張するこ
とで、
無応答になるまでの時間を概ね約20分から1時間位までに延長できたようであ
る。
・PGClusterの設定値は、デフォルト値を使用。
ロードバランサ・コネクションプーリング:使用
レプリケータの応答モード:normal
その他のタイムアウト値:デフォルト
<確認頂きたい点>
ロードバランサ無応答発生の件ですが、原因、改善方法等がありましたら
ご教示頂けないでしょうか。
以上宜しくお願いします。
pgcluster メーリングリストの案内