我们在连接到我们的 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 服务器不断地运行对后端 RDS 的查询。
- 我们平均每秒大约有 500 个连接到 RDS
- 每个 RDS 每天大约有 0-4 次打嗝
- 打嗝不符合我们的维护窗口
- 当我们遇到问题时,它会影响相当多的连接 ~50
- 当打嗝发生时,它将中断所有服务器和端口之间的连接
错误本身看起来是由 ec2 上关闭的 tcp 连接生成的。我们的 TCP 保持活动时间设置为 7200 秒,这就是触发错误的时间。
我的问题是可以做些什么来追踪为什么会发生这些问题?它们不经常发生很好,但根本不理想。
任何建议将不胜感激谢谢!
10/29 更新:
我一直在运行服务检查以查看我是否在 sql 服务器上运行了任何长进程,并且看起来这些错误并没有那么远。永远不会为此连接创建新进程!我仍然收到打嗝,只是没有任何联系的迹象。