問題タブ [time-wait]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
636 参照

sockets - FIN-WAIT-2 時間が切れると、アクティブ クローザーはどの状態になりますか?

FIN_WAIT2 時間が経過し、最後の FIN が反対側から来ない場合、アクティブ クローザーは次のどの状態になりますか? TIME-WAITまたはCLOSED

Linux システムでは、FIN-WAIT-2 をファイル /proc/sys/net/ipv4/tcp_fin_timeout で設定できます: man tcp(7)

  • tcp_fin_timeout (整数; デフォルト: 60; Linux 2.2 以降)

    これは、ソケットが強制的に閉じられる前に最後の FIN パケットを待機する秒数を指定します。これは厳密には TCP 仕様に違反していますが、サービス拒否攻撃を防ぐために必要です。Linux 2.2 では、デフォルト値は 180 でした。

  • TCP_LINGER2 (Linux 2.4 以降)

    孤立した FIN_WAIT2 状態のソケットの有効期間。このオプションを使用して、このソケットのファイル /proc/sys/net/ipv4/tcp_fin_timeout のシステム全体の設定をオーバーライドできます。これを socket(7) レベルのオプション SO_LINGER と混同しないでください。このオプションは、移植性を意図したコードでは使用しないでください。

このTCPソケットがFIN_WAIT2時間切れになった後の状態、強制的に閉じられた後、に移行するCLOSEDかどうかはよくわかりません。または単に状態にジャンプしTIME-WAITますか?

私はテストをしました:

1 : エコー 3 > /proc/sys/net/ipv4/tcp_fin_timeout

2 : Linux で実行される Tomcat のベンチマーク

にたくさん出てきてTIME-WAIT溜まっnetstatていたということは、FIN_WAIT2時間切れでソケットが飛び込んできたということTIME-WAITでしょうか?

もう1つの質問:私はこれを変更しました: echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse他の人が言うように:「ソケットを再利用する」,そしてtcp_fin_timeout:3. でも何も変わらず、 TIME-WAITただ積み上げていた。状態tcp_tw_reuseのソケットとは関係ありません。ソケットは再利用できませんか?TIME-WAITTIME-WAIT

echo 1 > /proc/sys/net/ipv4/tcp_tw_recycleカウントを減らしてTIME-WAIT低いレベルに保ち、負荷バランスの問題を放っておくことができるようです。

0 投票する
1 に答える
4338 参照

sockets - Zabbix エージェントの Windows TIME_WAIT ソケット

Zabbix Windows エージェントに大きな問題があります。

エージェントには、time_wait 状態のソケットが多数あります。

エージェントがこのソケットをすべて開くのはなぜですか?

このソケットを閉じる方法はありますか?

監視項目が多いのですが、これが問題でしょうか? インターバル時間は約10分。

ありがとうございました

0 投票する
1 に答える
517 参照

c# - クライアント接続 TCPLISTENER を受け入れる前に特定の時間待機しています

サーバーがクライアントの接続を受け入れる前に 10 秒待ちたいのですが、ネットで探していましたが、例が見つかりませんでした。

これは私が書いたコードです。そのための解決策を提供できる人はいますか?どうもありがとう:

0 投票する
1 に答える
3337 参照

node.js - time_wait が多すぎるノード アプリケーション

http.Agent.maxSockets とサーバー上に作成されたソケットの数との関係はありますか?

http.Agent() を使用して maxSockets を 30 に設定しましたが、まだ TIME_WAIT シグナルがたくさんあります。30以上あるようです。

http.Agent() でソケット番号を制御することは不可能ですか? TIME_WAIT の数を減らすにはどうすればよいですか?

0 投票する
1 に答える
14220 参照

python - Web ページが Scrapy に読み込まれるまで待ちます

「yield」を使用してURLをロードするためにスクレイピースクリプトを使用しています。

URL の読み込みに 5 秒以上かかるようです。そのため、Scrapy が item['Description'] 内のテキスト全体をロードするのをしばらく待ちたいと思います。settings.py で「DOWNLOAD_DELAY」を試しましたが、使い物になりませんでした。

0 投票する
1 に答える
1256 参照

java - RestTemplate の使用中に多くの TIME_WAIT 接続が発生しますか?

Spring RestTemplate を使用して、RestService への HTTP 呼び出しを行っています。RestTemplate のスプリング フレームワーク 3.2.8 バージョンを使用しています。私たちの会社にはSpring Frameworkバージョン3.2.8を使用している親POMがあるため、これをアップグレードすることはできません。

2台のマシンがあるとしましょう:

  • machineA: このマシンは、RestTemplate を HttpClient として使用するコードを実行しており、このマシンから、別のマシン (machineB) で実行されている RestService に HTTP 呼び出しを行います。以下のコードをマルチスレッド アプリケーションにラップして、クライアント コードで負荷テストとパフォーマンス テストを実行できるようにしました。
  • machineB: このマシンでは、RestService を実行しています。

現在、私が目にしている問題は、machineA で負荷とパフォーマンスのテストを実行するたびに発生することです。つまり、クライアント コードはマルチスレッドで呼び出されるため、machineB で実行されている RestService に対して多くの HTTPClient 呼び出しが非常に高速に行われます。

以下に示すように、常に多くの TIME_WAIT 接続がmachineA表示されます。

ここに多くの TIME_WAIT 接続があるのは良い兆候ではないと思います。 問題文:-

  • この高いTIME_WAIT接続は、ここで machineA の単純な言語で何を意味するのでしょうか?
  • これが RestTemplate で起こっている理由はありますか、それとも私が RestTemplate を使用している方法ですか? RestTemplate の使用方法に何か問題がある場合、それを使用する正しい方法は何ですか?

RestTemplate を使用している間、keep-aliveヘッダーや何かを設定する必要がありますか? Connection:Closeここで何が起こっているのか混乱しているので、入力/提案は大歓迎です。

以下は、コードベースでRestTemplateを簡単な方法で使用する方法です(RestTemplateの使用方法の全体的なアイデアを説明するためだけです):

以下は私の単純なタスククラスです

0 投票する
1 に答える
356 参照

c++ - pion http サーバーは TIME_WAIT を回避します

私は、Win32 で pion c++ ライブラリ (5.0.6) を使用して、http サーバーとクライアントで作業しています。

問題は、クライアントが切断された後、サーバー側で常に TIME_WAIT のままになることです。 netstat -anoから確認できます。私のサーバーには約 10000 の TIME_WAIT があり、クライアントがラグを感じることがあります。ラグが TIME_WAIT と関係があるかどうかはわかりません。

問題を説明するために簡単なサーバー/クライアントを書きました

サーバー:

クライアント:

サーバーは問題ないと思います。Chrome などの Web ブラウザーを使用してサーバーに接続すると問題なく動作するため、Chrome を閉じた後に TIME_WAIT が発生することはありません。ただし、クライアント コードは常に TIME_WAIT のままです。

クライアントコードの何が欠けていますか?