2

nginx -> node.js サーバーで apachebench を実行していたときに、特定の数の同時リクエストが設定された後、一部のリクエストが完了していないことに気付きました。出力結果は次のss -sとおりです。

TCP:   26006 (estab 660, closed 25296, orphaned 38, synrecv 0, timewait 25295/0), ports 0

接続の大部分が閉じられ、待機しているようです。これは、負荷が高い場合にうまく機能すると思います。

これらの接続をより速く「リサイクル」することは可能ですか? かなり長い時間(10秒くらい?)

4

2 に答える 2

0

これは、TIME_WAIT が存在する理由と、これらの接続が最初に TIME_WAIT で終了する方法を説明するのに役立ちます。

テストを 1 台のマシンで実行しているかどうかを知りたいです。もしそうなら、ソケットを TIME_WAIT に残しているのは、クライアント側またはサーバー側のいずれかである可能性があります。テストのクライアント側である場合は、それほど心配する必要はありません。1 台のマシンでテストを実行している場合は、テストを分割してサーバーを単独で使用し、TIME_WAIT を生成しているものを確認できるようにします。

TIME_WAITS がサーバーによって生成されている場合は、サーバーでアクティブ クローズを開始する理由を解明し、そのアクティブ クローズをクライアントに移動することが実用的かどうかを確認する必要があります。

于 2013-11-04T09:19:41.507 に答える