Сбой базы данных Grails / Hibernate при загрузке:Не удается подключиться (даже при объединении в пул)

StackOverflow https://stackoverflow.com/questions/571279

Вопрос

У меня есть приложение в Grails.Я использую Hibernate для доступа к базе данных (согласно стандартным правилам grails) Я использую MySQL, и сайт работает стабильно (в течение 6 месяцев).

Я провожу нагрузочное тестирование и недавно обнаружил, что база данных отклоняет подключения при загрузке.

Используя MySQL Server 5, я вижу подключенные потоки, зависающие в районе 20.Думал, я прыгаю между 11 и 30.

mysql> show status like '%con%';
+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| Aborted_connects         | 72    |
| Connections              | 65539 |
| Max_used_connections     | 101   |
| Ssl_client_connects      | 0     |
| Ssl_connect_renegotiates | 0     |
| Ssl_finished_connects    | 0     |
| Threads_connected        | 1     |
+--------------------------+-------+
7 rows in set (0.00 sec)

Конфигурация моей базы данных стандартная.(Сервер MySQL установлен локально, не показан)

dataSource {
    pooled = false
    driverClassName = "com.mysql.jdbc.Driver"
    username = "username"
    password = "secret"

    maxIdle = 15
    maxActive = 100        
}

Должен ли я исследовать C3P0?Или мне следует увеличить свой maxActive до 1000 и надеяться на лучшее?

Это было полезно?

Решение

О какой ошибке сообщает Grails, когда не удается установить соединение с базой данных?Тайм-аут?Отказался?

Когда вы запускаете свой тест, насколько загружена коробка?Процент использования процессора, памяти и т.д.

Возможно, база данных просто настолько перегружена, что Grails задерживает получение подключений.Если вы хотите обрабатывать нагрузку, вам нужно будет перейти к объединенным подключениям к базе данных.Без объединения Grails будет открывать и закрывать соединение с базой данных при каждом запросе.

Другие советы

Проверьте свою конфигурацию mysql (/etc/mysql.conf или ее локальный эквивалент), в частности, параметры max connections и max conn для каждого пользователя;это звучит так, как будто это может исходить из mysql, а не из grails.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top