CLOSE_WAIT状態から分離された接続

CLOSE_WAIT状態から分離された接続

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)です。

おすすめ記事