質問: TCPセッション状態「CLOSE_WAIT」について質問です。 **■事象** WEBサーバを運営していて、 画像ファイルのアクセスが10リクエスト/1秒 程度あるのですが、 Apacheの「http://localhost/server-status?refresh=1」で状況を確認すると、 "W" Sending Replyがどんどん増加していき、 準備していた1024スレッドを全て使い果たしてしてサーバダウンとなる事象が発生しています。 サーバダウン時に「netstat -an」でTCPセッションを確認したのですが、 「CLOSE_WAIT」が大量に(950程度)残っていました。 TCP通信が完全に終了していないく、 不完全なTCP通信がプロセスを圧迫して、新しいリクエストを受け付けられない、 という状況です。 ちなみに、 画像ファイルのアクセスは他サイトからの直リンクになります。 他サイトにという直リンクがあり、 他サイトのPVが10アクセス/1秒あるということです。 **■環境** OS : Windows 7 64bit WEB : Apache **■質問** なぜ「CLOSE_WAIT」が大量に残ってしまうのか、理由を教えて下さい。 また、具体的な解決方法(オペレーション付きが望ましいです)を教えて下さい。 ■備考 ネットワーク機器が影響かと思い、別の製品にしたのですが、 解決せずでした。 サーバのKeepAlive系の設定かな?と思っています。
回答: CLOSE_WAIT はサーバ側のステータスなので、クライアント側が Close(Linux 系なら shutdown) していないのが原因かもしれません。 確認できるなら、クライアント側のポート状態も合わせて確認してみてください。 対策としては、、、サーバ側が Windows のようなので、ちょっと力になれないです。すみません。