¿Cuál es la mejor manera de diagnosticar y perfilar MySQL en el servidor de producción en vivo?

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

Pregunta

¿Qué herramientas / métodos recomienda para diagnosticar y perfilar MySQL en el servidor de producción en vivo?

Mi objetivo es probar formas alternativas de ampliar el sistema y ver su influencia en el tiempo de lectura / escritura, la memoria, la carga de la CPU, el acceso al disco, etc. y encontrar cuellos de botella.

¿Fue útil?

Solución

En primer lugar, debe configurar algún tipo de monitoreo con, por ejemplo:

Otras herramientas útiles: mytop innotop mtop maatkit

Además, debes habilitar el registro consultas lentas en tu my.cnf.

Antes de comenzar a ajustar / cambiar los parámetros, debe crear algún tipo de Pruebe el plan y compare los resultados de antes / después para ver si sus cambios tiene sentido o no.

Otros consejos

Esto es algo en lo que he trabajado bastante.

  • MonYog : servicio de monitoreo de MySQL. Usamos esto en producción. No es gratis, pero tiene muchas características, incluidas alertas y datos históricos.

  • MySQL Enterprise Monitor : disponible con la empresa MySQL (es decir, , no es barato)

  • ¡Haz tu propio rollo!

Sobre el rollo de su propia opción:

En realidad, desarrollamos una aplicación de monitoreo realmente genial que utiliza herramienta RRD (utilizada por MRTG común) ) y una combinación de estadísticas de MySQL y estadísticas del sistema, como iostat. Este no solo fue un gran ejercicio, sino que también nos dio mucha flexibilidad para monitorear exactamente lo que queremos desde una única interfaz.

Aquí hay un Breve descripción de algunos enfoques para construir tus propias estadísticas.

Una de nuestras grandes motivaciones para rodar las nuestras, aunque también usamos MonYog, fue realizar un seguimiento de las estadísticas del disco. El disco de E / S puede ser un gran cuello de botella, y los sistemas de monitoreo estándar de MySQL no tienen monitoreo de E / S. Usamos iostat que forma parte de systat package.

Tenemos una interfaz que muestra gráficos de las estadísticas de MySQL junto a las estadísticas de E / S del disco, lo que nos permite obtener una idea general de cómo la carga de MySQL está afectando a la E / S del disco.

Antes de esto, realmente no teníamos idea de por qué nuestras aplicaciones de producción se estaban atascando. Descubrimos que la entrada / salida del disco era un problema importante y que MySQL estaba creando muchas tablas temporales en el disco cuando ejecutábamos consultas complejas. Pudimos optimizar nuestras consultas y mejorar dramáticamente el rendimiento del disco.

Jet Profiler para asegurarse

También agregue a la lista: RHQ 4 (código abierto) - http://rhq-project.org/

Vote http://tinyurl.com/vote-gif agregar a la lista:

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