MySQL demasiadas conexiones

MySQL demasiadas conexiones

En mi servidor tengo 7 bases de datos. Nuestro servidor tiene 512 MB de RAM que actualizaré esta tarde a 2 GB y tiene un procesador único 2.4.

Recibí un error acerca de que se excedió el límite de conexión. Al aumentar mi RAM, ¿está bien aumentar la cantidad de conexiones? Actualmente está configurado en 200, pero una sola página puede conectarse a 3 o 4 bases de datos considerando JOIN y demás.

Hemos configurado tantas bases de datos para una mera organización. Tenemos un total de entre 250 y 300 tablas en todas las bases de datos.

Cualquier consejo sería apreciado :)

Actualizar

Resulta que tengo muchas más conexiones de las que pensaba...

Con 2 GB de RAM y un núcleo único de 2,4, ¿son exactas 50 conexiones de usuario o debería aumentar esa cifra?

[mysqld]
safe-show-database

skip-locking
safe-show-database

interactive_timeout=30
wait_timeout=30
connect_timeout=10
max_user_connections=50
max_connections=1000

key_buffer=64M
join_buffer=2M
record_buffer=2M
sort_buffer=4M
max_allowed_packet=24M

query_cache_limit = 2M
query_cache_size = 64M
query_cache_type = 1

tmp_table_size=128M
table_cache=2048
thread_cache=256
thread_concurrency=1

Respuesta1

Debería poder aumentar sustancialmente sus conexiones. Sin embargo, si no ajusta adecuadamente el uso de memoria por subproceso, corre el riesgo de que MySQL se quede sin memoria. Que MySQL se quede sin memoria puede ser una situación desastrosa y es mejor evitarla.

Un ejemplo de lo que sucede cuando no sintonizas correctamente:

MySQL sigue reiniciándose debido a que se queda sin memoria

Algunas recomendaciones de ajuste anteriores que proporcioné:

¿Cómo configuro my.cnf en Mysql para que no haya límites de conexiones?

El enlace aUso de memoria InnoDBincluye una fórmula para calcular el uso de memoria de InnoDB, que puede insertar en una hoja de cálculo para calcular el uso de memoria por subproceso.

Aquí hay más información sobreUso de la memoria del servidor MySQL.

En última instancia, su objetivo debe ser calcular el uso máximo de memoria por subproceso en función de su configuración. Una vez calculado, puede establecer sus conexiones máximas en el valor adecuado.

Respuesta2

En máquinas de 1 GB, configuramos habitualmente max_connections en 750 sin problemas

Respuesta3

Si usa PHP, edite el archivo de configuración de PHP, generalmente en /etc/php.ini y cambie la persistencia a APAGADO.

[MySQL]; Permitir o impedir conexiones persistentes. mysql.allow_persistent = Desactivado

Eso es todo. Reinicie Apache.

información relacionada