11

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()

いくつかの詳細情報:

  • バックエンド RDS へのクエリを常に実行している一連の EC2 サーバーがあります。
  • RDS への 1 秒あたり平均約 500 の接続
  • 1 日あたり RDS あたり約 0 ~ 4 回のしゃっくりがあります。
  • しゃっくりはメンテナンス期間と一致しません
  • しゃっくりが発生すると、かなりの数の接続に影響を与える可能性があります ~50
  • しゃっくりが発生すると、すべてのサーバーとポート間の接続が中断されます

エラー自体は、ec2 で閉じられている tcp 接続から生成されているようです。TCP キープアライブ時間は 7200 秒に設定されており、そのときにエラーが発生します。

私の質問は、これらの問題が発生する理由を突き止めるために何ができるでしょうか? 頻繁に発生しないのは素晴らしいことですが、まったく発生しないのは理想的ではありません。

アドバイスをいただければ幸いです。

10/29 更新:

SQL Server で実行中の長いプロセスがあるかどうかを確認するためにサービス チェックを実行していますが、これらのエラーはそれほど進んでいないようです。この接続に対して新しいプロセスが作成されることはありません。私はまだしゃっくりを受け取っていますが、接続の兆候はありません.

4

1 に答える 1

1

そのため、Amazon サポートとやり取りした後、ここに到達した現在のソリューションです。

Amazon は、RDS インスタンスの somaxconn 値を調整することで、ソケット リッスン バックログを増やしました。

値はデフォルトの 128 でしたが、1024 に引き上げられました。

値が調整されると、Lost Connection エラーは表示されなくなりました。

于 2014-12-12T21:16:51.950 に答える