¿Elegir un valor para wait_timeout & interactive_timeout en la configuración de MySQL?

12

Tenemos un servidor en vivo que está siendo muy afectado, por lo que estamos intentando optimizar todo lo que podamos. Ejecutamos el script MySQLTuner en él ( http://mysqltuner.com/ ) que nos dice que debemos establecer un valor menor que 28800 para wait_timeout & interactive_timeout. ¡Hay muchos números posibles para elegir entre 1 y 28800!

Busqué el significado de estas variables en la documentación de MySQL, pero eso solo dio una descripción muy básica y ninguna guía para elegir un valor.

¿Existe algún valor que se considere una práctica recomendada generalmente aceptada? ¿Y cuál sería el resultado probable de elegir un valor que fuera demasiado bajo?

Gracias,

Bart

Bart B
fuente

Respuestas:

19

wait_timeout es la cantidad de segundos durante la inactividad que MySQL esperará antes de cerrar una conexión en una conexión no interactiva. interactive_timeout es lo mismo, pero para sesiones interactivas (mysql shell)

Establecer un valor demasiado bajo puede hacer que las conexiones se caigan inesperadamente, específicamente si está utilizando conexiones persistentes en su aplicación web.

Establecer un valor demasiado alto puede hacer que las conexiones obsoletas permanezcan abiertas, evitando un nuevo acceso a la base de datos.

OMI, para wait_timeout, querrás que este valor sea lo más bajo posible sin afectar la disponibilidad y el rendimiento. Puede comenzar con 10 segundos y aumentarlo gradualmente si observa un rendimiento degradado.

Para interactive_timeout, cambiar este valor realmente no aumentará ni disminuirá el rendimiento de su aplicación.

Charles Hooper
fuente