2016-05-17 2 views
3

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構成なので、どんな助けでも大歓迎です。

+0

ここで提供されている回答が見つかった場合は、同様の質問をした他のユーザーに役立つように、アップしてください。 –

答えて

0

"TCP/IPソケット(10106)を作成できません"という症状で現れる別の問題があるようです。

膨大な量の非常に高速な接続を回していない限り、一時的なポートやタイムアウトを編集する必要はありません。これを行うことで、後で起こる原因を取りやめるだけです。

私はあなたのアプリケーション(その全体)が終了したら接続を終了していることを確認しますか?これにはデータベース接続、クライアントのHTTPソケット、ファイル/ディレクトリハンドルなどが含まれます... "netstat"を使用して、アプリケーションの実行中に現在開いているポート/接続を監視します。何が増えているのかを見つけて、これらの種類の接続の原因となっているアプリ(または同じマシンで実行されている他のアプリ)を追跡します。その後、接続を正しく閉じて問題を解決するアクションを実行できます。

これが役に立ちます。がんばろう。

+0

Nestatは少量のアクティブな接続を示しています。そのため、この問題の原因となっているTCPの疲労は本当にありません。私は同じマシン上に.Net Windowsサービスをいくつか持っていましたが、別のボックスに移動しました。 –

+0

ここにnetshの出力があります。C:\> netsh int ipv4 show tcpstats MIB-II TCP統計 -------------------------- ---------------------------- タイムアウトアルゴリズム:Van Jacobsonのアルゴリズム 最小タイムアウト:10 最大タイムアウト:4294967295 最大接続:動的アクティブ が開きます:999295 パッシブオープン:71886の 試みは失敗しました:2つの 設立リセット:現在設立2162 :セグメントで21 :75634810個の アウトセグメント:81423272個の 再送セグメント:エラーが発生143915 :0 Out Resets:8732 –

+0

アクティブなTCP接続の数のように見えるので、この 'アクティブなオープン'パラメータは私を混乱させましたが、本当はそうではありません。私の理解では、これは前回の再起動やそのようなものからの接続数です。 –

関連する問題