TClientSocketを使ったアプリを"複数(10以上)"起動すると、IE起動から(移動も)サイトが表示されるまでが、かなり遅くなります。
アプリはTClientSocketをOPENして、(TServerSocketに)接続出来なければ5秒間隔で再OPENします。
これを10以上、別々のIPへ向けて起動・OPENします。
1. タスクマネージャ、パフォーマンスモニタで監視しても、メモリ消費量・CPU稼働率・ネットワーク資料率が、特別高くなる様子はない。
2. OPENの行だけコメントにすると、症状が治まる。
3. TClientSocketをOPENするだけの小さなアプリを複数起動しても、症状を感じない(若干遅い気もするが)
こういった経験がありましたでしょうか?
または調査方法などご存知であれば、よろしくお願いいたします。
環境
Delphi 4
XP SP2
Celeron 2.40GHz
512MB RAM
うちでは、大量のネットワーク接続を確立するアプリを使うと、同じような現象になります。
そういう時は、ADSLモデムを再起動すると直ります。
多分ルーターの問題じゃないでしょうか?
同じかな?さん、ありがとうございます。
ルータの設定につきましては、確認出来次第、また書き込みしたいと思います。
その後わかったこと、説明足らずな部分の補足などを書き込みしておきます。
よろしくお願いいたします。
1. テストは(インターネットに接続できる環境にて)ローカルのIPのみで行っている
2. 各クライアントがサーバに接続できると症状が解消する
3. 各クライアントがサーバに接続できないでいると症状が出る
・・・OPEN後相手先を探すのに、大量のパケットを出している??
Windows XP/2003のTCP同時接続数制限とその回避:ITpro
http://itpro.nikkeibp.co.jp/article/Watcher/20060812/245765/
これですかねえ?
WindowsXPで、TCPの同時接続が10以上制限ていう奴らしいです。
P2Pのアプリとか使うとよく引っかかると聞いています。
eEye Digital Security - Research
http://research.eeye.com/html/tools/RT20060808-1.html
上のアドレスで紹介のあるeEyeのBIOTというソフトを使うか、
一応、Microsoftがパッチを出していたと思うのでそれを当てるかですね。
MicrosoftのパッチはURL失念しました。後で探してみます。
BIOTの方は、使ってみると一目瞭然で、パフォーマンスが上がりますね……。
"Windows XP Service Pack 2 セキュリティ強化機能搭載" での機能の変更点 ‐ 第 2 部 : ネットワーク保護技術
http://www.microsoft.com/japan/technet/prodtechnol/winxppro/maintain/sp2netwk.mspx#EIAA
このTCP/IPの接続制限は、SP2で対策が取られたみたいですね。
Networking/Tips - Damedas
http://pukiwiki.damedas.com/index.php?Networking%2FTips
こちらにも対策等まとめられてます。
SP2とVistaからのようですね。
検索したところ、Microsoftのパッチですが、これ?っぽいですが、
ちょっと確証がないです。(私も入れてみたのですが、変わってないような……)
Windows XP Service Pack 2 でループバック アドレスの範囲内の IP アドレスに接続するプログラムが正常に動作しないことがある
http://support.microsoft.com/default.aspx?kbid=884020
TOBYさん、ありがとうございます。
おかげさまで状況がかなり見えてきました。
ケース1:各アプリの接続先がローカルIPだった場合
症状 :サイトの表示までかなり時間がかかるが、しばらくすると表示される
Biotを使い、TCP/IP 同時接続制限を40程度に変更すると、症状が解消されました。
イベントビューアで確認しても、4226が出ていましたので、間違いなさそうです。
なお、BitCometのダウンロード速度600kbps固定を解除する方法についての話題の中で、
接続制限の解除について触れられていました。
http://jp.bitcomet.com/patio/patio.cgi?mode=view&no=20
http://jp.bitcomet.com/patio/patio.cgi?mode=view&no=13&l=1-
・・・パッチをダウンロードしてみたものの、インストールしようか迷い中です。
ケース2:各アプリの接続先がグローバルIPだった場合
症状 :サイトは表示されず、タイムアウトする
ルータのセッションリストを確認すると、リストが満杯でした。
リトライするたびに、アプリ数分のセッションが増え続けて、あっという間に
上限値128を超えていました。
ルータの再起動で解消しますので、同じかな?さんの「ADSLモデムを再起動すると
直ります」のケースがこちらにあたると思います。
ケース1では、ローカル内の他の端末への影響はないですが、
ケース2では、ローカル内の他の端末も閲覧不可になります(当たり前ですが)。
今回の解決方法としては・・・
1. OPEN後、接続出来なかった際のリトライ間隔を少しあける
2. 各アプリの起動タイミングを少しずつずらす(一気に起動すると負荷が集中する)
3. 1.2.を対処した上でダメであれば、TCP/IP 同時接続制限を変更する
このような感じで検討と思います。
しかし、TOBYさんレベルで中級となると、私なんぞは中級を名乗れないな・・・
ツイート | ![]() |