Windows 2008r2のApache 2.2で動作しているPerl Webアプリケーションに問題があります。ここで Perl Webアプリケーションの問題:DBI接続に失敗しました:TCP/IPソケットを作成できません(10106)
は問題です:私はエラーで定期的にタイムアウトを取得しています:私は時々すべてが期待通りに動作しますが、ほとんどの時間は、私はこれを取得することを意味し、定期的に言うDBI connect('host=10.148.xxx.xxx:database=XXX','root',...) failed: Can't create TCP/IP socket (10106)
メッセージが表示され、アプリケーションでエラーページがスローされます。
私はインターネットで多くを検索し、私のためにはうまくいかなかった推奨される解決策のカップルを見つけました。
まず、データベースサーバーに到達できないと思っていましたが、MySQLエンタープライズモニターを使用していると、私はそれが当てはまりませんでした。 http://www.outsystems.com/forums/discussion/6956/how-to-tune-the-tcp-ip-stack-for-high-volume-of-web-requests/
を一言で言えば、私はこれをしなかった:
は、それから私は私がエフェメラルポートの数を増加し、この記事で説明したようにタイムアウト時間を減少させてきたので、私はTCPポートを使い果たしたかもしれないと思ったReduce the TIME_WAIT by setting the TcpTimedWaitDelay TCP/IP parameter to 30 seconds on the windows registry key HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters, as a DWORD value.
Increase the range of ephemeral ports by setting the dynamicportrange to an higher value through the command netsh int ipv4 set dynamicportrange tcp start=32767 num=32768, this will set the port range from 32768 to 65535."
しかし運、まだ取得タイムアウト
次に、私はさらにKeepAliveTimeout
を減少させるために、これらのパラメータと私のApacheの設定ファイルを更新しました:
Timeout 100
MaxKeepAliveRequests 100
KeepAliveTimeout 5
まだ、運はありません。
私の主な問題は、ほとんどすべてが時間を費やしているし、問題を再現するのにも問題がありますが、それは日々起こっていて、クライアントは迷惑になります。
私はどの方向に行くべきかも分かりませんが、それはMySQL、それはPerl DBIモジュールの問題です、それはApache、TCP/IP構成なので、どんな助けでも大歓迎です。
ここで提供されている回答が見つかった場合は、同様の質問をした他のユーザーに役立つように、アップしてください。 –