Warning message

This translation is outdated. For the most up-to-date information, please refer to the English version.

CLOSE_WAIT ソケットは何を示していますか?

Solution Verified - Updated -

Issue

  • アプリケーションを実行すると、アプリケーションがソケットを ESTABLISHED または TIME_WAIT の状態から CLOSE_WAIT 状態にする場合があります。
  • この状態は何を示していますか? どのような調整方法がありますか?
  • このようなソケットを多数持つアプリケーションで、この状態は何を示していますか?
  • サービス混合サーバーで close wait 接続を取得します。Windows サーバーに close wait のソケット接続があります。Windows およびネットワークチームに相談したところ、これはアプリケーションが接続を閉じる問題であるいうことが分かりました。
    • CLOSE_WAIT は、サーバーがクライアントから最初の FIN 信号を受け取ってから接続が閉じるプロセスに入ることを示しています。したがって、これは、アプリケーションが close() を実行するのをソケットが待っている状態を示しています。ソケットは、アプリケーションが接続を閉じるまでずっと CLOSE_WAIT 状態になる可能性があります。ファイル記述子のリークなどは誤ったシナリオで、サーバーがソケットで close() を実行していないため、close_wait ソケットが蓄積されます。
    • CLOSE_WAIT 状態は、相手側が接続を閉じ始めたにも関わらず、ローカルのアプリケーションがソケットを閉じていないということを意味しています。
    • この 8081 ポートは “JAVA.exe” によって実行されています。詳細は、http://stackoverflow.com/questions/5636316/troubleshooting-connections-stuck-in-close-wait-status および http://serverfault.com/questions/160558/how-to-not-get-so-many-apache-close-wait-connections を参照してください。
  • これはすべて、問題のアプリケーションが close() を実行しなければならないことを示しています。これはベンダーに関係していますか? ソケットを閉じることが問題なのかを簡単に確認することができますか?このパケットは A10 でキャプチャーしました。IP アドレスは VIP ホスト名 10.10.10.10 でフィルタリングしました。source-nat プールのホスト名は 10.10.10.10 と設定しました。したがって、バックエンドトラフィックは 10.10.10.10 (A10) と 11.11.11.11 (サーバー) との間になります。パケットキャプチャーでは、A10 がサーバーに接続していることが確認できます。すべてのトラフィックはポート 8081 で行われています。

Environment

  • Red Hat Enterprise Linux 6
  • Red Hat Enterprise Linux 5
  • Red Hat Enterprise Linux 4
  • TCP

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase of over 48,000 articles and solutions.

Current Customers and Partners

Log in for full access

Log In