Ошибка тайм-аута соединения
Я получаю следующую ошибку в журналах приложений
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 всегда остается очень высоким - более 80%. я использую m3.medium
пример.