【问题标题】:Intermittently can't connect to mysql on AWS RDS (Error 2003)间歇性无法连接到 AWS RDS 上的 mysql(错误 2003)
【发布时间】:2014-12-20 18:37:51
【问题描述】:

我们的 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 server 上运行了任何长进程,并且看起来这些错误并没有那么严重。永远不会为此连接创建新进程!我一直在打嗝,只是没有任何联系的迹象。

【问题讨论】:

    标签: mysql django amazon-web-services amazon-rds pymysql


    【解决方案1】:

    因此,在与亚马逊支持来回反复之后,这是我们目前的解决方案。

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

    该值是默认值 128,现在已增加到 1024。

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

    【讨论】:

    • 你好@Zach,我遇到了类似的问题。此值是否可以通过管理控制台配置,还是我需要联系支持人员?
    • 很遗憾,您现在需要直接联系支持人员。我被告知能够修改它在他们的积压中,但没有具体的发布日期。
    猜你喜欢
    • 1970-01-01
    • 2021-04-02
    • 2014-02-25
    • 1970-01-01
    • 2018-05-13
    • 2017-09-13
    • 1970-01-01
    • 2013-01-23
    • 1970-01-01
    相关资源
    最近更新 更多