2

プラットフォームの負荷が高いと、ログに MySQL からのエラーが表示されるようになります。これらのエラーの奇妙な点は、実際に発生してから正確に 1 時間 (3600 秒) 後にログに表示されることです。

たとえば、先日負荷テストを行ったところ、午前 8 時 30 分頃にボトルネックにぶつかり、タイムアウトが発生しました。ちょうど 1 時間後の午前 9 時 30 分に、ログに次の行が表示されるようになりました。

... Zend_Db_Adapter_Mysqli_Exception [0] Lost connection to MySQL server at 'reading initial communication packet', system error: 104 ...

mysqliPHP のタイムアウト設定またはこれに関連するタイムアウト設定を見つけようとしていますが、libmysql私たちの問題を説明するものを見つけるのに苦労しています。

何か案は?

私が得た最も近いものはmysqlnd.net_read_timeout、まだ1年ではありますが、TCP / IPタイムアウトについて言及しています. しかし、私はおそらくここで間違った道を進んでいることを非常に認識しています。

ありがとう

4

1 に答える 1

0

Mysqlにマスタースレーブレプリケーションを使用していますか?

マスターがダウンしてから復帰した場合、スレーブにはすぐには通知されません。デフォルトで1時間(3600秒)のタイムアウトに達するまで、同じ接続で待機し続けます。タイムアウト後、新しい接続で再接続するため、発生したエラーがログに記録されます。

于 2012-08-20T12:31:03.747 に答える