我们遇到了与mysql服务器超时连接的间歇性问题。 我们收到的错误如下。
(2003, 'Can\'t connect to MySQL server on \'<connection>\' ((2013, "Lost connection to MySQL server during query (error(104, \'Connection reset by peer\'))"))')
Callstack:
File "/usr/lib64/python2.7/site-packages/pymysql/connections.py", line 818, in _connect
2003, "Can't connect to MySQL server on %r (%s)" % (self.host, e))
File "/usr/lib64/python2.7/site-packages/pymysql/connections.py", line 626, in __init__
self._connect()
更多信息:
错误本身看起来是从ec2上关闭的tcp连接生成的。我们的TCP保持活动时间设置为7200秒,即错误发生时。
我的问题是可以采取哪些措施来追踪这些打嗝为何会发生?很棒的是它们并不经常发生,但它们根本不会发生。
任何建议都将不胜感激!
更新10/29:
我一直在运行服务检查,看看我是否在sql server上运行了任何长进程,看起来这些错误并没有那么多。永远不会为此连接创建新进程!我一直在接受打嗝,只是没有关联的迹象。
答案 0 :(得分:1)
因此,在亚马逊的支持来回之后,我们已经找到了当前的解决方案。
亚马逊通过调整RDS实例上的somaxconn值来提高我们的套接字侦听待办事项。
该值的默认值为128,并且已经升至1024。
调整值后,我们不再收到“丢失连接”错误。