GNU/Linux >> Linux の 問題 >  >> Linux

膨大な量の TIME_WAIT 接続で netstat が表示される

解決策 1:

編集: tcp_fin_timeout しない TIME_WAIT 期間を制御します。60 秒にハードコードされています

他の人が述べたように、 TIME_WAIT にいくつかの接続があります TCP 接続の通常の部分です。 /proc/sys/net/ipv4/tcp_fin_timeout を調べると間隔がわかります :

[[email protected] ~]# cat /proc/sys/net/ipv4/tcp_fin_timeout
60

そして、その値を変更して変更します:

[[email protected] admin]# echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout

または、/etc/sysctl.conf に追加することで永続的に

net.ipv4.tcp_fin_timeout=30

また、RPC サービスまたは NFS を使用しない場合は、オフにすることができます:

/etc/init.d/nfsd stop

完全にオフにしてください

chkconfig nfsd off

解決策 2:

TIME_WAIT は正常です。これは、ソケットが閉じた後の状態であり、失われてパーティーに遅れて現れた可能性のあるパケットを追跡するためにカーネルによって使用されます。 TIME_WAIT 接続の数が多いのは、短時間の接続が大量に発生する兆候であり、心配する必要はありません。

解決策 3:

それは重要ではありません。これは、多数の Sun RCP TCP 接続 (2 ~ 4 分ごとに 1500 ~ 2500 件) を開いたり閉じたりしていることを示しています。 TIME_WAIT 状態とは、ソケットが閉じたときにソケットが入るものであり、ソケットがあまりにも早く再利用された場合のように間違ったアプリケーションにメッセージが到着するのを防ぎ、その他のいくつかの有用な目的のために使用されます。心配しないでください。

(もちろん、それほど多くの RCP 操作を処理する必要のあるものを実際に実行していない場合を除きます。それなら、心配してください。)

解決策 4:

システム上の何かが、システム内で多くの RPC (リモート プロシージャ コール) を実行しています (ソースと宛先の両方が localhost であることに注意してください)。これは NFS マウントの lockd でよく見られますが、rpc.statd や rpc.spray などの他の RPC 呼び出しでも見られる場合があります。

「lsof -i」を使用して、誰がそれらのソケットを開いているかを確認し、それを行っているかを確認できます。おそらく無害です。

解決策 5:

tcp_fin_timeout TIME_WAIT を制御しません 遅れ。これを確認するには、ss または netstat を -o とともに使用して、カウントダウン タイマーを確認します。

cat /proc/sys/net/ipv4/tcp_fin_timeout
3

# See countdown timer for all TIME_WAIT sockets in 192.168.0.0-255
ss --numeric -o state time-wait dst 192.168.0.0/24

NetidRecv-Q  Send-Q    Local Address:Port    Peer Address:Port                             
tcp  0       0         192.168.100.1:57516   192.168.0.10:80    timer:(timewait,55sec,0)   
tcp  0       0         192.168.100.1:57356   192.168.0.10:80    timer:(timewait,25sec,0)   
tcp  0       0         192.168.100.1:57334   192.168.0.10:80    timer:(timewait,22sec,0)   
tcp  0       0         192.168.100.1:57282   192.168.0.10:80    timer:(timewait,12sec,0)   
tcp  0       0         192.168.100.1:57418   192.168.0.10:80    timer:(timewait,38sec,0)   
tcp  0       0         192.168.100.1:57458   192.168.0.10:80    timer:(timewait,46sec,0)   
tcp  0       0         192.168.100.1:57252   192.168.0.10:80    timer:(timewait,7.436ms,0) 
tcp  0       0         192.168.100.1:57244   192.168.0.10:80    timer:(timewait,6.536ms,0)

tcp_fin_timeout を 3 に設定しても、TIME_WAIT のカウントダウンは 60 から始まります。ただし、net.ipv4.tcp_tw_reuse を 1 (echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse) に設定している場合 ) その後、カーネルは、TCP セグメントの番号付けに競合の可能性がないと判断した場合、TIME_WAIT でソケットを再利用できます。


Linux
  1. Vimマクロを使用して頻繁なタスクを自動化する

  2. sipcalcLinuxコマンドラインツールの使用方法

  3. Linuxのネットワークでライブホストを検出する

  1. MacアドレスからOuiベンダー情報を取得するためのコマンドラインツール?

  2. CentOS で nfs4 を使用して複数のフォルダーをマウントする方法は?

  3. 特定のポートと期間の TCP 接続の総数を IP で調べるにはどうすればよいですか?

  1. Linuxサーバーのネットワーク接続をnetstatで表示する

  2. オプション以外の TCP ラッパー

  3. アウトバウンド接続用に複数のデフォルト ゲートウェイを設定することはできますか?