过去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的问题?
答案 0 :(得分:1)
数据库池不是每个应用程序,而是每个进程。如果它是每个实例的线程/多进程,它可能会使用更多。你试过重启mysql吗?听起来你出于某种原因有一些悬挂连接。
答案 1 :(得分:0)
我最近遇到了这些问题。它可能与我的RDS实例上的参数组的挂起重启更改有关吗?我当然希望不是。据我所知,未决的更改应该对当前的性能没有影响。