我的应用程序日志中出现以下错误
ActiveRecord::ConnectionTimeoutError: could not obtain a database connection within 5.000 seconds (waited 5.000 seconds)
需要我的应用程序才能创建过多的后台工作人员。我正在使用sucker-punch gem
进行后台作业。我已经实现了Rollbar工具来监视应用程序崩溃,并且正在报告
10 occurrences in 5 minutes: #8 ActiveRecord::ConnectionTimeoutError: could not obtain a database connection within 5.000 seconds (waited 5.000 seconds)
我不确定为什么会这样,但是我可以感觉到我的一些后台工作一直在不时中断。在很多地方,我正在使用ActiveRecord::Base.connection.execute
命令建立数据库连接。
我的数据库池大小设置为100
,而MYSQL统计信息是:
Aborted_connects **51088**
Connection_errors_accept **0**
Connection_errors_internal **0**
Connection_errors_max_connections **0**
Connection_errors_peer_address **8**
Connection_errors_select **0**
Connection_errors_tcpwrap **0**
Connections **1232264**
Max_used_connections **115**
Performance_schema_session_connect_attrs_lost **0**
Ssl_client_connects **0**
Ssl_connect_renegotiates **0**
Ssl_finished_connects **0**
Threads_connected **12**
应用程序有什么问题吗?只是帮助调试问题的信息。它的AWS EC2 CPU使用率始终始终保持很高的比例,始终高于80%。我正在使用m3.medium
实例。