2017-03-20 16 views
1
私は私が異なるタスク

完全に終了する方法は、HttpWebRequest

私は

を参照してください

を開始することにより、200の同時接続を開いたとき、彼らは例えば

を終了していない参照の既存のHTTP接続を確認するとき、私は適切にすべてを終了していたとしても

158 Established HTTP connections 
927 TimeWait 
95 SynSent 
24 LastAck 
6 CloseWait 
34 FinWait 

に悪い部分がTIMEWAITの数は、私はそのようなものがある防ぐことができますどのように

だから、毎分増加し続ける、あります起こるように訴える?後

窓は、私がwebproxiesを使用する場合、この問題が発生

新たな要求を行うことができなくなっている間:Too many proxy connection kills window's resolving hosts ability

ここで私は別のプロキシと200個の接続

enter image description here

答えて

1
を使用する場合

TimeWait状態で接続すると、パフォーマンス上の問題が発生する可能性があります。

まず、マシンのTCPは、そのピアから受信したFINセグメントに対するACKセグメントを送信した後にこれは、TCP接続の状態である

https://en.wikipedia.org/wiki/File:Tcp_state_diagram_fixed_new.svg

、TCP状態遷移図を見てみましょう(1981年にTCPを定義しているRFC 793の詳細http://www.ietf.org/rfc/rfc793.txt)。この状態では、TCB(TCP Control Block)やポートなどのソケットリソースはOSに解放されません。タイムアウトが経過すると、ソケットリソースがOSに解放されます。元来の理由は、信頼できない媒体のピア間で起こりうる2世代の問題に対処することです。設定可能なタイムアウトまでオペレーティングシステムに依存するデフォルト値が設定されるまで、接続はTimeWaitになります。

これらのリンクは、WindowsでTcpTimedWaitDelayのパラメータを設定するためにあなたを助けることができます。

https://technet.microsoft.com/en-us/library/cc938217.aspx http://msdn.microsoft.com/en-us/library/ee377084%28v=bts.10%29.aspx

これは、デフォルト値は240秒であると言いますが、私は、私は60との間(下回を経験した私のテストです120)。

とにかく、今日のネットワークは信頼性が高く、高いパフォーマンスとスループットを必要とするWebサービスでは、この値を減らす必要があります。私はちょうど5秒に設定することをお勧めします。より慎重にしたい場合は、30秒に設定します。

その他のパラメータは、クライアントが開くことを可能にする一時的なポートの最大数です。デフォルトでWindows Serverは、一時的なTCPポートの最大数を制限します。一部のWindowsでは、この値は5000になる可能性があります。レジストリに値MaxUserPortを設定することで、この動作を変更できます。

+0

非常にTy。両方の値を設定するために正確なレジストリ名を教えてくれますか? TCP接続の最大数とTimeWaitのデフォルトの待ち時間の変更? Windowsの場合 – MonsterMMORPG

+0

@MonsterMMORPG、HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip \ Parameters \ MaxUserPortおよびTcpTimedWaitDelay。それはリンクにあり、私はWindows 8.1と同じだと思う。それらが存在しない場合は、それらを追加する必要があります。 – rodolk

+0

はい、私はそれを追加すべきだと思います。とにかく私は彼らが働いていることを確認できますか?私はいくつかのcmdコマンドのような意味ですか? – MonsterMMORPG

関連する問題