Grails / Hibernate accidentes base de datos bajo carga: No se puede conectar (incluso cuando la agrupación)

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

Pregunta

Tengo una aplicación en Grails. Yo uso de Hibernate para acceder a la base de datos (por reglas Grails estándar) Utilizo MySQL y el sitio funciona y es estable (por 6 meses).

Estoy haciendo pruebas de carga, y recientemente descubrí que la base de datos rechaza conexiones cuando está bajo carga.

Uso de MySQL Server 5, puedo ver hilos vez conectado situándose en torno a 20. El pensamiento i saltos entre 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)

Mi configuración de la base de datos es estándar. (El servidor MySQL está instalado localmente, que no se muestra)

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

    maxIdle = 15
    maxActive = 100        
}

¿Debo investigar C3P0? O debería Ratched mi maxActive a 1000 y esperar lo mejor?

¿Fue útil?

Solución

¿Cuál es la presentación de informes de error Griales cuando no se puede obtener una conexión de base de datos? ¿Se acabó el tiempo? Negado?

Al ejecutar la prueba, cómo cargado es la caja? CPU ciento, uso de memoria, etc.

Es posible que la base de datos está tan sobrecargada que Grails se agote el tiempo de conseguir conexiones. Si desea manejar la carga, tendrá que ir a las conexiones de base de datos agrupados. Sin puesta en común, Griales abrirá y cerrará una conexión de base de datos con cada solicitud.

Otros consejos

Compruebe la configuración de MySQL (/etc/mysql.conf o su equivalente local), en particular las conexiones max y Conn máximo por la configuración del usuario; esto suena como si puede venir de MySQL y no griales.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top