問題タブ [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 - 同じソケットが TIME_WAIT に何度もあるのはなぜですか?
TIME_WAIT のソケットに関する他のスレッドを読みましたが、明らかにまだ何かが欠けています。
以下は、「netstat -an」からの数行です。どうしてこのような状況に陥ったのでしょうか?私が見つけた説明を理解していれば、ソケット 63444 の複数のインスタンスを持つべきではありません ... しかし、「LISTEN」としてリストされたものの後には、約 50 個の個別のソケット接続があり、片端が 63444 であり、すべて「TIME_WAIT」にあります。 . これはどのように発生する可能性があり、どうすれば修正できますか?
php - 説明が必要: PHP5-FPM の TIME_WAIT が 60 秒間開いたままになる
先日、nginx Web サーバーが php スクリプトの処理を停止し、504 ゲートウェイ タイムアウトが発生するという問題に遭遇しました。ポート9000でphp5-fpmをセットアップしました。
実行するとnetstat | grep 9000
、次の結果が得られました。異なるポート番号で何百回も
そして、彼らはまったく片付けられていないようでした。サーバーに大量のトラフィックがヒットしたか、どこかでスクリプトが間違っていた可能性があります。サーバーから優先度の低いサイトの束をシャットダウンし(約10個の異なるnginxサイト構成ファイルを実行しています)、物事は再び動作していますが、phpページへのリクエストごとにnetstatがそれらの9000-> 37XXXポートの1つを報告し、ページはほぼ瞬時にクライアントに返されますが、60 秒間開いたままになります。
60秒間開いたままにする理由はありますか? または、接続が再利用されないのはなぜですか? 何かが正しく構成されていませんか?
サイトの 1 つに再び大量のトラフィックが発生すると、すべての接続が再び拘束され、504 ゲートウェイ タイムアウトが再び表示されるのではないかと心配しています。悪いphpスクリプトではありません。
tcp - TCP 接続が確立された状態になることはありません
私は確かに動作し、正しく動作することを知っている git から Spark プロジェクトを複製しました。プログラムを実行すると、Jetty サーバーが起動し、問題なくリッスンしているように見えます。そのためのコンソールは次のとおりです。
しかし、コンピューターのブラウザーから要求を送信すると、常に空の応答が返されます。データベースとすべての構成があり、別のコンピューターで同じデータを使用して同じ構成を試してみましたが、すぐに機能します。TCPview で TCP 接続ステータスを調べたところ、接続が直接 time_wait 状態になることがわかりました。テストした他のコンピューターでは発生しないため、問題はプログラムまたはデータベースに起因するものではないと推測していますが、特に私のコンピューターでは何かが原因です。ご意見をお待ちしております。ありがとう。
sockets - Gatling でのソケット オプションの指定
ダミーの RESTful サービスのパフォーマンス テストを行っているときに、こちらまたはこちらConnectException: Cannot assign requested address
で説明されている問題に遭遇し、チューニングの推奨事項を適用しました- エフェメラル ポートの範囲を 10000 ~ 65000 に増やしました。この優れたブログ投稿で、ビジー状態の Linux サーバーでの TCP TIME-WAIT 状態への対処。ulimit -n
net.ipv4.tcp_tw_reuse
net.ipv4.tcp_tw_recycle
これはまだ役に立ちませんでした。1 秒あたり最大 10,000 のリクエストをシミュレートできたので (私のテストでは各ユーザーが 1 つのリクエストしか実行しないため)、4 台以降の 8 台のクライアント マシンにスケールアウトしました。4 台のマシンでは、マシンごとに 5,000 のリクエスト/秒 (合計 20,000) を実行できましたが、8 台のマシンではそれらの 5k でさえ実行できないため、問題は別の場所にある可能性があります。
SocketOptions
それにもかかわらず、シミュレーションまたは gatling.conf を介してガトリング接続に設定するオプションがあるかどうかを尋ねたいと思います- そこでSO_REUSEADDRを使用したいと思います。一部のオプション (接続タイムアウト) は gatling.conf で設定できますが、これは見つかりませんでした。
また、Gatling が接続を共有する方法を説明するドキュメントはありますか? 「ユーザー」が接続インスタンスを取得する大きな接続プールか、各ユーザーが自分の接続を開くダミーのいずれかを期待しますが、どこかで、ユーザーごとに接続プールがあることを読んだことがあります(接続を共有しているのは誰ですか、それとも、これらは彼の以前のリクエストで使用されたキャッシュされた接続ですか?)。
編集:したがって、解決策は最終的に簡単でした:.shareConnections
設定時に使用しますScenarioBuilder.protocols(...)
。コマンドライン引数として使用しようとしましたが-Dgatling.core.http.shareConnections
(maven プラグインからテストを実行しています)、うまくいきませんでした。プログラマティックなアプローチでした。
dynamics-crm-2011 - Dynamics CRM で予定日が過ぎたらメールを送信
図書館システムのワークフローを作成する必要があります。予定のチェックイン日が過ぎてから 5 日後にメールを送信する必要があるワークフロー。以下を試してみましたが、うまくいかないようです。
私が間違っている提案はありますか?
node.js - Solaris での TIME_WAIT の累積
tcp_time_wait_interval
1000(1秒)に設定しました。しかし、接続を閉じた後でも、TCP TIME_WAIT 状態は蓄積されています。誰でもこれについて私を助けてください。
LINUX システムでは正常に動作しています。TIME_WAIT が累積されていません。したがって、コードに問題がないことを願っています。
asp-classic - クラシック ASP での Response.Flush により TIME_WAIT ポートが発生する
最近、この問題に気付きました: https://blogs.msdn.microsoft.com/spike/2008/09/17/nested-recordset-and-the-portsocket-in-time_wait-problem-by-example/
レコードセットを開き、レコードセットを開いたまま別の接続を使用すると、Web サーバーは新しいポートを開いて DB と通信し、すぐにそのポートを TIME_WAIT 状態にします。
私はこれを修正するためにサイトを調べてきました (接続が再利用される前にレコードセットを閉じることによって - 動作します) が、奇妙なことに気づきました。
ページに「Response.Flush」がある場合、何をしても、余分なポートが使用され、無駄な TIME_WAIT 状態になります。これは、ポート枯渇の深刻なケースにつながる可能性があります。
サンプルコード:
時間の待機を確認するには、次を実行できます。
Web サーバーのコマンド プロンプトから。これがテスト システムであると仮定すると、Web サーバーから DB サーバーへの time_wait 接続ポップアップがすぐに表示されるはずです。フラッシュを取り除くと、これが止まります。
グーグルは役に立ちませんでした-どんな提案もお待ちしています。
環境: IIS 7.5、クラシック ASP、SQL Server 2008。
編集:
コメントに従ってこれも試しました:
まだ同じ問題。フラッシュあり、余分な接続、なし、同じ接続。
EDIT 2 データベースとは何の関係もないことがわかりました。IIS からclientへの余分な接続を既に引き起こしている response.flush しかない場合、私は間違ったことを見てきました。
問題は、response.flush が IIS からクライアントへの余分な接続を生成しないようにできるかどうかということになります。