繁体   English   中英

在AWS RDS上间歇性无法连接到mysql(错误2003)

[英]Intermittently can't connect to mysql on AWS RDS (Error 2003)

我们遇到了与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服务器上运行了任何长进程,看起来这些错误没有达到那么远。 永远不会为此连接创建新进程! 我仍然收到了打嗝,没有任何关联的迹象。

因此,在亚马逊的支持来回之后,我们已经找到了当前的解决方案。

亚马逊通过调整RDS实例上的somaxconn值来提高我们的套接字监听积压。

该值的默认值为128,最高可达1024。

调整值后,我们不再收到“丢失连接”错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM