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