問題タブ [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 に答える
2346 参照

windows - ループバックインターフェイスのTIME_WAIT

ループバックインターフェイスへのTCP接続が終了するTIME_WAIT(ソケットがSO_DONTLINGERsetで閉じられる)のに、別のホストへの同一の接続が終了しないTIME_WAIT(すぐにリセット/破棄される)のはなぜですか?

説明するシナリオは次のとおりです。

(A)クライアントとサーバーの2つのアプリケーションが、両方とも同じWindowsマシンで実行されています。クライアントは、サーバーのループバックインターフェイス(127.0.0.1、ポートxxxx)を介してサーバーに接続し、データを送信し、データを受信し、ソケットを閉じます(SO_DONTLINGER設定されています)。

接続が非常に短命であるため、クライアントアプリが毎秒多数の接続を確立および破棄しているとしましょう。最終的に、ソケットはTIME_WAITになり、クライアントは最終的に最大数のソケットを使い果たします(Windowsでは、これはデフォルトで最大3900であり、この値はレジストリで変更されないと想定しています)。

(B)シナリオ(A)と同じ2つのアプリケーションですが、サーバーは別のホスト上にあります(クライアントは引き続きWindowsで実行されています)。接続は、127.0.0.1宛てではなく、代わりに他のIP宛てである点を除いて、すべての点で同一です。ここでは、クライアントマシンの接続はに移行せTIME_WAITず、クライアントアプリは無期限に接続を継続できます。

なぜ矛盾があるのですか?

0 投票する
3 に答える
5205 参照

sockets - What's the difference between TIME-WAIT Assassination and SO_REUSEADDR

I was reading about using the SO_LINGER socket option to intentionally 'assassinate' the time-wait state by setting the linger time to zero. The author of the book then goes on to say we should never do this and in general that we should never interfere with the time-wait state. He then immediately recommends using the SO_REUSEADDR option to bypass the time-wait state.

My question is, what's the difference? In both cases you're prematurely terminating the time-wait state and taking the risk of receiving duplicate segments. Why is one good and the other bad?

0 投票する
0 に答える
2817 参照

c# - C# でスレッドプールを待機する

の複製

プールされたスレッドが完了するまで待ちます。

スレッドプールに与えられるのを待っている X 個の関数があり、スレッドプールのスレッドの最大数は 5 です。すべての X 関数が実行されるまでメインスレッドを待機させるソリューションを見つける必要があります。

コードは次のようになります。

すべての関数が実行されるまでメインスレッドを待機させたい。

簡単な解決策は、ManualResetEvents の Rulecnt no を作成してスレッドに渡し、すべてのシグナルが到着するのを待つことです。

しかし、いつでも実行できるスレッドの最大数は 5 であるため、ManualResetEvents を 5 つだけ使用できますか?,可能であれば、どのようにすればよいでしょうか?

または解決策があれば説明してください。

0 投票する
3 に答える
23917 参照

apache - TIME_WAIT接続が多すぎます

TIME_WAIT状態で接続(> 1,000)で過負荷になり続ける、Apache modプロキシを使用するかなり忙しいWebサイト(1日あたり100万ページビュー)があります。接続はポート3306(mysql)への接続ですが、mysqlはいくつかの接続(プロセスリストを表示)のみを表示し、正常に実行されています。たくさんのことを変更しようとしましたが(オン/オフを維持)、何も役に立たないようです。他のすべてのシステムリソースは妥当な範囲内にあります。

私は周りを検索しましたが、これはtcp_time_wait_intervalを変更したことを示しているようです。しかし、それは少し劇的に思えます。私は以前に忙しいウェブサイトで働いたことがありますが、この問題は一度もありませんでした。

助言がありますか?

0 投票する
0 に答える
249 参照

console - コンソールで待機

重複の可能性:
バッチファイルを一定時間一時停止する

「タイムアウト」コマンドを使用せずに、コンソール (cmd) で x 秒待機するにはどうすればよいですか?

0 投票する
4 に答える
7164 参照

c# - データが読み込まれている間、時間をつぶすためにスプラッシュ画面を表示する方法は?

アプリを起動するとき、最初にいくつかのデータを読み込む必要があり、いくつかのフォームを初期化する必要があります。その間、ユーザーには、何かフォームを表示する準備ができているグレーが表示されます。

これは数秒間続きます...

別のスレッドにデータをロードし、所要時間を示すスプラッシュ スクリーンを考えました。それともただのステータスバー?

このようなことをどのようにしますか?

C# .NET 3.5 + Winforms を使用しています

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

java - TIME_WAIT の tcp 接続は再接続を許可しません、java

サーバーへの tcp 接続を確立した後、Linuxアプリケーションを閉じると、Socket.close() が呼び出されます。

netstat -pant を確認すると、接続が TIME_WAIT ステータスになっていることがわかります。

これにより、同じポートを使用して接続しているため、サーバーにすぐに接続できなくなります。代わりに、再接続する前に、接続が TIME_WAIT ステータスでタイムアウトになるのを待つ必要があります。

set_so_timeout()、set_keepalive()、set_so_linger()、および set_reuseaddr() というソケット メソッドを試してみましたが、この投稿ではメソッドの正確なスペルが間違っている可能性があります。

私の質問は、接続を TIME_WAIT ステータスから抜け出させて、すぐに再び接続できるようにするにはどうすればよいですか?

私にお知らせください。

ありがとう、ジブ

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

connection - Hibernate により time_wait 接続が多すぎる

Hibernate 3 を使用していますが、接続が閉じられていることに関連する問題に直面しています。

c3p0-0.9.1.2.jar を使用しており、Hibernate によって開かれたデータベース サーバーへの接続を確認したところ、5 つの接続が確立されていることがわかりました。サーバーの一部の TCP ポートで (以下のログを参照)。

ただし、これらの確立された接続は、確立された TCP ポートを変更し続けるため、それらが使用していた以前のポートを解放し、これらのポートを (閉じるのではなく) TIME_WAIT 状態にします。

これは継続し、数百の数を数えます。TIME_WAIT 状態の接続の場合。

何が起こっているのか、ポートが確立された状態から TIME_WAIT に切り替わっていて、以前のポートが閉じていない理由がわかりません。

以下は、NETSTAT -ano|find "x.9" を実行して取得したサンプルです。x.9 はデータベース サーバーの IP です。

私が使用する Hibernate.properties ファイル。

手伝ってくれてありがとう。

0 投票する
6 に答える
71449 参照

networking - サーバー側で多くの TIME_WAIT のコストはいくらですか?

サーバーへの短時間の接続を多数行うクライアントがあると仮定しましょう。

TIME_WAITクライアントが接続を閉じると、クライアント側で多くのポートが状態になります。クライアントがローカル ポートを使い果たすため、すぐに新しい接続を試みることができなくなります。

サーバーが接続を閉じるとTIME_WAIT、サーバー側に多くの が表示されます。しかし、これは何か害がありますか?クライアント (または他のクライアント) は、ローカル ポートが不足することはなくTIME_WAIT、サーバー側で状態の数が増えるため、接続を試行し続けることができます。最終的にはどうなりますか?何か悪いことが起こりますか?(スローダウン、クラッシュ、接続の切断など)

TIME_WAIT私の質問は「目的は何ですか?」ではないことに注意してください。しかし、「サーバー上に非常に多くの状態がある場合はどうTIME_WAITなりますか?」TIME_WAITTCP/IP で接続が閉じられたときに何が起こるか、および状態が必要な理由は既に知っています。トラブルシューティングを行うつもりはありませんが、潜在的な問題を知りたいだけです。

簡単に言えば、netstat -nat | grep :8080 | grep TIME_WAIT | wc -lprintとしましょう100000。何が起こるでしょうか?OS のネットワーク スタックは遅くなりませんか? 「開いているファイルが多すぎます」エラー?それとも、何も心配する必要はありませんか?

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

jquery - 印刷が完了するまで待ちます - Jquery Asp.net MVC

私は初心者です。非常に初歩的な質問でしたらすみません。window.print() で CSS を非表示にして表示しています。IE8 および FF では、印刷時に応答するまでページの実行が停止し (印刷またはキャンセルのいずれか)、再度開始してページの読み込みを完了します。しかし、IE6 と IE7 では、印刷ダイアログ ボックスで応答するまで、ページの読み込みは待機しません。印刷ダイアログ ボックスで応答 (印刷またはキャンセル) するまでページの実行を一時停止するにはどうすればよいですか? 特定の時間のための settimeout は使用したくありません。すぐに印刷することを選択した場合、settimeout が期限切れになるまでページは読み込まれず、その逆も同様です。助けてください。