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 ...

我一直在尝试为 PHPmysqlilibmysql与此相关的超时设置,但我正在努力寻找一个可以解释我们的问题的设置。

有任何想法吗?

我最接近的是mysqlnd.net_read_timeout,虽然还没有到 1 年,但提到了 TCP/IP 超时,在进一步谷歌搜索后,我得到了TCP session timeout,默认情况下似乎是 3600。然而,我非常清楚我可能在这里走错了路。

谢谢

4

1 回答 1

0

你在使用Mysql的主从复制吗?

如果你的主人宕机又回来,奴隶不会立即得到通知。它会一直等待同一连接,直到达到默认为 1 小时(3600 秒)的超时。超时后,它将重新连接新连接,从而记录导致的错误。

于 2012-08-20T12:31:03.747 回答