CLOSE_WAIT状態でTCP接続を累積し、決して発生しないSLESシステムがあります。これらの記述子は、最終的に利用可能なすべてのメモリを消費します。現在3037がありますが、最近急激に再起動する前は、その数がはるかに多かったです。
興味深いことに、これらの信号は、リスニングプロセスが予想されるローカルポートへの接続では発生しません。関連付けられたPIDがなく、タイマーが期限切れになっているようです。
# netstat -ton | grep CLOSE_WAIT
tcp 176 0 10.0.0.60:54882 10.0.0.12:31663 CLOSE_WAIT off (0.00/0/0)
tcp 54 0 10.0.0.60:60957 10.0.0.12:4503 CLOSE_WAIT off (0.00/0/0)
tcp 89 0 10.0.0.60:50959 10.0.0.12:3518 CLOSE_WAIT off (0.00/0/0)
# netstat -tonp | grep CLOSE_WAIT
tcp 89 0 10.0.0.59:45598 10.0.0.12:1998 CLOSE_WAIT -
tcp 15 0 10.0.0.59:60861 10.0.0.12:1938 CLOSE_WAIT -
tcp 5 0 10.0.0.59:56173 10.0.0.12:1700 CLOSE_WAIT -
私はTCPスタックやカーネルネットワーキングに関してはブラックベルトではありませんが、マニュアルページによると、次の値がデフォルトであるため、TCP設定は問題ありません。
# cat /proc/sys/net/ipv4/tcp_fin_timeout
60
# cat /proc/sys/net/ipv4/tcp_keepalive_time
7200
それでは何が与えられますか?タイマーが期限切れになると、スタックはこれらの項目を自動的に消去する必要はありませんか?このようなことが積み重なり、実際には長期間のサービス拒否を経験しました。
ベストアンサー1
いいえ、タイムアウトはありませんCLOSE_WAIT
。私はこれがoff
あなたの結果が意味するものだと思います。
を終了するには、CLOSE_WAIT
アプリケーションが明示的にソケットを閉じるか終了する必要があります。
バラよりCLOSE_WAITを中断する方法。
netstat
プロセスバーに表示されている場合:-
- 適切な権限と機能(rootなど)を使用して実行していますか?
- カーネルプロセス(たとえば、nfsd)です。