2014-02-06 130 views
0

我有一个Rails应用程序在过去6个月的生产运行,每周部署,没有任何问题。亚马逊RDS(Mysql2 ::错误110)

现在,我一直有一个反复出现的问题约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的问题?

+0

'connection',也许? –

+0

请原谅我的法语 – Jim

回答

1

数据库池不是每个应用程序,而是每个进程。如果它是每个实例的线程/多进程,它可能会使用更多。你有没有尝试重新启动MySQL?听起来你无论出于何种原因都有一些挂起的关系。

+0

我试图避免重新启动它,但我可能不得不这样做。我读RDS需要一段时间才能重新启动实例,所以我无法在白天进行。如果连接挂起,我不会在进程列表中看到它们吗? – Jim

0

我最近收到这些问题。它可能与我的RDS实例上的参数组的待定 - 重新启动更改有关吗?我当然不希望。据我所知,待处理的更改应该对当前的性能没有影响。

+0

不是。我已经完成了重新启动,现在没有任何挂起。问题仍然存在。 – Sankalp