問題タブ [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.
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-WAIT
TIME-WAIT
echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle
カウントを減らしてTIME-WAIT
低いレベルに保ち、負荷バランスの問題を放っておくことができるようです。
sockets - Zabbix エージェントの Windows TIME_WAIT ソケット
Zabbix Windows エージェントに大きな問題があります。
エージェントには、time_wait 状態のソケットが多数あります。
エージェントがこのソケットをすべて開くのはなぜですか?
このソケットを閉じる方法はありますか?
監視項目が多いのですが、これが問題でしょうか? インターバル時間は約10分。
ありがとうございました
c# - クライアント接続 TCPLISTENER を受け入れる前に特定の時間待機しています
サーバーがクライアントの接続を受け入れる前に 10 秒待ちたいのですが、ネットで探していましたが、例が見つかりませんでした。
これは私が書いたコードです。そのための解決策を提供できる人はいますか?どうもありがとう:
node.js - time_wait が多すぎるノード アプリケーション
http.Agent.maxSockets とサーバー上に作成されたソケットの数との関係はありますか?
http.Agent() を使用して maxSockets を 30 に設定しましたが、まだ TIME_WAIT シグナルがたくさんあります。30以上あるようです。
http.Agent() でソケット番号を制御することは不可能ですか? TIME_WAIT の数を減らすにはどうすればよいですか?
python - Web ページが Scrapy に読み込まれるまで待ちます
「yield」を使用してURLをロードするためにスクレイピースクリプトを使用しています。
URL の読み込みに 5 秒以上かかるようです。そのため、Scrapy が item['Description'] 内のテキスト全体をロードするのをしばらく待ちたいと思います。settings.py で「DOWNLOAD_DELAY」を試しましたが、使い物になりませんでした。
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の使用方法の全体的なアイデアを説明するためだけです):
以下は私の単純なタスククラスです
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 のままです。
クライアントコードの何が欠けていますか?