TCP / IPセッションを60秒未満で実行できますか?


8

私たちのサーバーはTCP / IPセッションで過負荷になっています。それらのほとんどはTIME_OUT状態でハングしています。TIME_OUT状態の接続は、60秒のタイムアウトが経過するまでソケットを占有していることがわかります。

問題は、サーバーが応答しなくなり、多くのクライアントがサービスを受けられないことです。

簡単なテストを行いました。InternetExplorer 8.0を使用してサーバーからXMLファイルをダウンロードします。ダウンロードはほんの一瞬で完了します。しかし、TCP / IP接続がTIME_OUT状態で60秒間ハングしていることがわかります。

TIME_OUTの待機を解消する方法、または新しい接続用にソケットを解放する方法を減らす方法はありますか?

TCP / IP接続がTIME_OUT状態になる理由はわかりますが、XMLファイルのダウンロードが終了した後、Internet Explorerが接続を閉じない理由はわかりません。

詳細。

私たちのサーバーは、Perl(mod-perl)で記述されたWebサービスを実行します。このサービスは、気象データをクライアントに提供します。クライアントはFlashアプリケーション(実際にはWindowsアプリケーションに埋め込まれたFlash ActiveXコントロール)です。

OS:Ubuntu

Apacheの「Keep Alive」オプションが0に設定されている


TIME_OUT状態になる理由を理解している場合は、他の攻撃や問題を防ぐためにこれが必要な理由を理解する必要があります。このタイムアウトを減らすことができますが、これを行うと他の結果が生じます。
davr

構文はKeepAlive on|offです。 KeepAlive 0Apache 1.1構文です。あなたはそれを使っていないと思います。
mark4o 2010

1500 T / Oセッションによってシステムが応答しなくなることはありません。別の理由があります。
2011

接続は安価なルーターを経由していますか?
LatinSuD 2014年

回答:


7

これはTCPスタックの設定です。使用しているプラ​​ットフォームがわからないため、それが何と呼ばれ、どのように変更するかを正確に述べることはできません。

更新

つまり、Ubuntuを使用しています。を使用sysctlして、net.inet.tcp.msl値を希望するTIME_WAIT期間の半分(ミリ秒単位-参照man -S 4 tcp)に減らすことができますsysctl net.inet.tcp.msl=2500TIME_WAIT期間が経過した後に到着する可能性のあるワンダリングパケットに関して、そうすることの影響に注意してください。


当社のサーバーは、Ubuntuのを実行し、私は詳細更新しました
パー

«1200-1500件»は計算機も傷つけないので、MSLを調整する理由にはなりません
poige

1

そうだと思うTIME_WAIT。アクティブなクローズを開始するピアは入るピアですTIME_WAITここで状態遷移図を参照)。クライアントに接続をクローズさせることができる場合は、TIME_WAITオフにしてクライアントに移動します。詳細と問題とその解決方法に関する優れた記事へのリンクについては、この回答を参照してくださいTIME_WAIT

別の方法として、クライアントにアクティブなクローズを発行できない場合は、閉じる前にlingerをfalseに設定して接続をリセットします。これにより、RSTではなくが送信されFINます。


ああ、どうもありがとう!しかし、ユーザーがInternet ExplorerでXMLファイルをロードするときに、TCP / IP接続をどのように制御できますか?
パー

TIME_WAITこれは正常であり、サーバーのパフォーマンスが低下していない限り、あまり心配する必要はありません。ソケットが入っTIME_WAITている場合、それはいくつかのリソースを消費しますが、接続がまだ開いている、またはサーバーがまだそれを処理していることを意味しません。
Len Holgate、2010

0

サーバーが無応答であることは、おそらくTIME_WAIT状態の接続の数とは関係ありません。「ソケットを占有する」という意味が明確ではありません-サーバーはcloseその時点でソケットを使用していないので、長く待たなければなりません。システムは、TIME_WAIT状態の何万もの接続を処理できる必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.