1

在过去的 6 个月里,我有一个 Rails 应用程序在生产中运行,每周部署一次,没有任何问题。

现在,我已经有一个反复出现的问题大约 3 周了,而且它似乎每周都变得更糟。当我的应用程序启动并到达尝试连接数据库的位置时,我收到此错误:

Can't connect to MySQL server on '***.amazonaws.com' (110) (Mysql2::Error)

AFAIK,这个错误告诉我我已经达到了 MySQL 的最大连接数限制。

从配置中,我应该能够打开 296 个连接。我的应用程序设置为运行 7 个实例,每个实例的数据库连接池为 5,因此在部署新实例时它不能真正超过 70 个连接。

我从未在 AWS RDS 控制台或SHOW PROCESSLIST命令中看到连接数超过 20。

我认为这与 Rails 或我的应用程序服务器 (Puma) 没有任何关系,因为当问题发生时我无法通过 MySQL 命令行工具进行连接。

有人对 RDS 上的 MySQL 或 MySQL 本身有类似的问题吗?

4

2 回答 2

1

数据库池不是每个应用程序,而是每个进程。如果它是每个实例的线程/多进程,它可能会使用更多。你试过重启mysql吗?听起来无论出于何种原因,您都有一些悬而未决的连接。

于 2014-02-07T00:02:25.923 回答
0

我最近遇到了这些问题。可能与我的 RDS 实例上参数组的挂起重启更改有关吗?我当然希望不会。据我了解,未决的更改应该对当前性能没有影响。

于 2014-12-23T09:10:55.410 回答