ここにこんなに多くの人が訪れる理由は何だろうかTIME_WAIT
? ESTABLISHED、SYN接続はほとんどありませんが。
[root@www ~]# netstat -natp | grep "210.XX.XX.XX:80" | awk '{print $6}' | sort | uniq -c
1 ESTABLISHED
12 FIN_WAIT2
9903 TIME_WAIT
答え1
これを説明するには、TCP / IP通信の理解が必要です。最も単純な形式で誰かがWebサーバーに接続すると、サーバーは接続がしばらく続くと仮定し、その通信にポートを割り当て、通信チャネルのタイムアウトを設定します。出力が示すように、netstat
相手(つまりクライアント)が通信を停止すると、チャネルまたはポートはTIME_WAIT状態に切り替わります。おそらく彼または彼女に必要なのは、1ページだけを見て終了することかもしれません。ただし、サーバーにはこれを知る方法はありません。通信に長い時間がかかるという前提で動作します。
その主な理由は、新しい通信チャネルを設定することは、既存の通信チャネルを維持するよりもリソース面でコストがかかるためです。特に、クライアントがサーバーから複数の要求を行っている場合はさらにそうです。これについてもっと詳しく知りたい場合は、ここに良い記事があります。http://www.serverframework.com/asynchronousevents/2011/01/time-wait-and-its-design-implications-for-protocols-and-scalable-servers.html
これらの問題を排除したり、頻繁に発生しないようにする方法と、これらの問題が要約形式で発生する理由に興味がある場合は、次のページを参照してください。http://www.fromdual.com/huge-amount-of-time-wait-connections