2

Webサーバー上のphpスクリプトがプライベートネットワーク経由でMySQLデータベースサーバーに接続すると、断続的な「接続タイムアウト」エラーが発生します。ただし、パブリックネットワークを使用して接続するようにスクリプトに指示すると、これらのエラーは表示されません。

私の接続スクリプトは、mysqlに接続しようとするたびにエラーをチェックし、エラーが発生した場合は電子メールを送信してから、自動的にパブリックネットワークに切り替えてその接続を試行するように設定されています。パブリック接続が失敗すると、別の電子メールが送信され、ユーザーにカスタムWebページが表示されます。

1時間に約5〜10の接続エラーが発生します。毎分何百もの接続が成功しています。

これらの機械は専用機です。私はホスティング会社に連絡しました、そして彼らはルーターとケーブルをテストし、そしてすべてが大丈夫だと言いました。サーバーに双方向でpingを実行してみましたが、1時間以上のテスト期間でエラーはまったく発生しませんでした。

最新のPHPとPHP-FPMで最新のNginxを使用しています。Mysqlは5.5.27です。これらは、最新のアップデートを備えたCentos664ビットシステムです。

私は多くのネットワーク構成オプション、php-fpmおよびmysql構成ファイルの調整を試しましたが、何をしたり変更したりしても、何も修正されません。

奇妙なことに、すべてがパブリックネットワーク上でうまく機能し、pingとファイル転送は両方のマシン間のプライベートネットワーク上でうまく機能します。

何か案は?

** アップデート **

PHP-FPM構成ファイルとMySQL構成ファイルにいくつかの変更を加えましたが、エラーは1時間あたり約2〜3になりましたが、まだ解決されていません。

4

1 に答える 1

0

これがあなたのケースであるかどうかはわかりませんが、同様の状況で私を助けたので、言及する価値があります。基本的に、Linuxカーネルの接続の最大数には上限があります:https ://serverfault.com/questions/10852/what-limits-the-maximum-number-of-connections-on-a-linux-server

すべてのネットワークで共有されているかどうかはわかりませんが、確認する価値があると思われる場合は、これらの変数値を2回上げて、エラーの発生頻度に影響があるかどうかを確認します。

于 2012-09-26T16:38:55.407 に答える