[pgsql-jp: 38494] 切断後もTCPコネクションが残り続ける

宮林 修一 sh.miyaba @ gmail.com
2007年 6月 14日 (木) 18:01:03 JST


お世話になります。
宮林と申します。

Windows用インストーラでバージョン8.2.3をWindowsXPにインストールして運用しているのですが、
TCP/IP経由で接続しようとすると成功も失敗もせず、ただずっと待ち続けるという現象が発生しました。

そこで調査のためサーバパソコンでnetstatを実行してみると、
大量のCLOSE_WAIT状態の接続が残っていました。
この接続はPostgreSQLを再起動するまでずっと残っていました。

Proto  Local Address          Foreign Address        State
TCP    127.0.0.1:5432         127.0.0.1:3523         CLOSE_WAIT
TCP    127.0.0.1:5432         127.0.0.1:3524         CLOSE_WAIT
TCP    127.0.0.1:5432         127.0.0.1:3525         CLOSE_WAIT
 ・
 ・
 ・

アプリケーションが原因かと思い、試しにpsqlで接続、切断を行ってみると、
クライアント側では、FIN_WAIT_2、サーバ側ではCLOSE_WAITの接続が、
psql終了後も残り続けました。
(FIN_WAIT_2はしばらくすると消えましたが、CLOSE_WAITは残り続けました。)

私の環境ではCLOSE_WAIT状態の接続が3000を超えたあたりから同様の現象が発生するようです。
アプリケーションを修正して、接続と切断の回数を減らすことは可能ですが、
それでも長期間運用すると同様の現象が発生するのではないかと不安です。

原因や対処法をご存知の方がおられましたら、ご教授願います。



pgsql-jp メーリングリストの案内