【发布时间】:2020-05-25 19:54:01
【问题描述】:
从最近几周开始,我看到了这个错误“在 5.000 秒内无法获得数据库连接”。我尝试了以下解决方案。
根据 Sidekiq Docs,我已将并发数减少到 10,并将 MySql 数据库池大小增加到 12。但我仍然收到此错误,因此我将数据库池大小增加到 27。但问题仍然存在。来自this 和this 答案的尝试解决方案。我的 Sidekiq 服务器机器没有运行任何其他可以消耗 AR 连接的进程。我没有从外面纺任何线。以下是我的配置
Sidekiq version - 3.4.2
Rails version - 4.2.4
Active Record version - 4.2.4
Database pool size - 27
Sidekiq concurrency - 10
我们将不胜感激。
【问题讨论】:
-
您是否达到了 mysql 的最大总连接数?
SHOW VARIABLES LIKE "max_connections",默认为 151 -
@Vasfed 我没有达到最大总连接数。我有最多 10000 个可用连接。
-
请提供
GLOBAL STATUS和VARIABLES。说明:mysql.rjweb.org/doc.php/mysql_analysis#tuning -
如果通过主机名连接,是否是某种形式的 DNS 故障(尝试通过 IP 连接)。
-
不是 DNS 故障。据我研究和谷歌搜索,我确信这与 ActiveRecord 有关。不知何故,连接没有被检出回连接池。
标签: mysql ruby-on-rails activerecord sidekiq