Google cloud sql &引用;查询期间与MySQL服务器的连接中断;在googlecloudsql中
我遇到了一个奇怪的、反复出现但不是恒定的错误,我得到了“2013,‘在查询过程中与MySQL服务器失去连接’”。这些是场所:Google cloud sql &引用;查询期间与MySQL服务器的连接中断;在googlecloudsql中,google-cloud-sql,Google Cloud Sql,我遇到了一个奇怪的、反复出现但不是恒定的错误,我得到了“2013,‘在查询过程中与MySQL服务器失去连接’”。这些是场所: Python应用程序每小时运行约15-20分钟,然后停止(由cron每小时安排) 该应用程序位于GCE n1-highcpu-2实例上,db位于D1上,具有每包定价计划和以下mysql标志 该数据库仅由该应用访问,且仅由该应用访问,因此使用率相同,约为每小时连续20分钟,然后在其他40分钟内完全没有 它所做的第一个查询是 上面的查询连接了两个表,每个表的长度约为
- Python应用程序每小时运行约15-20分钟,然后停止(由cron每小时安排)
- 该应用程序位于GCE n1-highcpu-2实例上,db位于D1上,具有每包定价计划和以下mysql标志
- 该数据库仅由该应用访问,且仅由该应用访问,因此使用率相同,约为每小时连续20分钟,然后在其他40分钟内完全没有
- 它所做的第一个查询是
- 上面的查询连接了两个表,每个表的长度约为700行,并且没有索引
- 在这个查询之后(如果运行没有问题,则需要0.2秒),应用程序将在没有任何问题的情况下启动
start_time: 2014-10-27 13:19:04
query_time: 00:00:00
lock_time: 00:00:00
rows_sent: 760
rows_examined: 1514
db: foobar
last_insert_id: 0
insert_id: 0
server_id: 1234567
sql_text: ...
有什么想法吗?如果您的连接在15分钟间隔内处于空闲状态,您可能会看到GCE断开您的空闲TCP连接,如中所述。尝试该页面建议的解决方法:
sudo /sbin/sysctl -w net.ipv4.tcp_keepalive_time=60 net.ipv4.tcp_keepalive_intvl=60 net.ipv4.tcp_keepalive_probes=5
(您可能需要将此配置放入/etc/sysctl.conf以使其永久化)谢谢,我补充了这一点,并且我似乎在启动时不再遇到连接丢失错误,但有时它确实发生在写入过程中,我非常确定那里没有空闲连接。我将不得不进一步调查,但我可能也达到了此处所示的同时连接限制,连接限制仅在连接启动时才强制执行。查询期间连接断开的其他可能原因记录在。如果这种情况很少发生,也可能是由于系统启动了云SQL实例的重启。
start_time: 2014-10-27 13:19:04
query_time: 00:00:00
lock_time: 00:00:00
rows_sent: 760
rows_examined: 1514
db: foobar
last_insert_id: 0
insert_id: 0
server_id: 1234567
sql_text: ...
sudo /sbin/sysctl -w net.ipv4.tcp_keepalive_time=60 net.ipv4.tcp_keepalive_intvl=60 net.ipv4.tcp_keepalive_probes=5