Zac*_*ach 9 mysql django amazon-web-services amazon-rds pymysql
我们遇到了与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服务器上运行了任何长进程,看起来这些错误没有达到那么远.永远不会为此连接创建新进程!我仍然收到了打嗝,没有任何关联的迹象.
因此,经过与亚马逊支持的反复讨论,这就是我们目前得出的解决方案。
Amazon 通过调整 RDS 实例上的 somaxconn 值来提高套接字侦听积压。
该值的默认值是 128,现已增加到 1024。
调整该值后,我们就不再收到“丢失连接”错误。