sql >> Base de Datos >  >> RDS >> Mysql

Supervisión del rendimiento de MySQL con ClusterControl

Supervisar el rendimiento de las bases de datos MySQL es una tarea diaria de casi todos los DBA de MySQL. En esta publicación de blog, intentaremos demostrar cómo monitorear el rendimiento de sus bases de datos MySQL, con ClusterControl.

¿Qué necesita monitorear?

En general, si está monitoreando el rendimiento de MySQL, probablemente debería considerar monitorear las siguientes cosas:

  • Gestión de consultas - monitorear el rendimiento de sus consultas puede resultar ser una de las formas más eficientes de mejorar el rendimiento de MySQL.
  • Detección de valores atípicos de consulta - Los datos históricos pueden decirnos mucho:incluso se pueden usar para calcular el rendimiento esperado de las consultas en función de los datos históricos y luego comparar el rendimiento actual de las consultas con el rendimiento esperado para detectar los valores atípicos de las consultas.
  • Rendimiento del esquema de la base de datos - ClusterControl puede ayudarlo a optimizar el rendimiento de sus instancias de MySQL al proporcionar información sobre el esquema para garantizar que sus esquemas estén optimizados para su carga de trabajo.
  • Equilibrio de carga - Los balanceadores de carga como ProxySQL, HAProxy o MaxScale pueden hacer que su base de datos rinda al máximo de su capacidad. Esos balanceadores de carga se pueden implementar fácilmente usando ClusterControl.

Equilibrio de carga de base de datos y administración de consultas mediante ClusterControl

ClusterControl admite los siguientes balanceadores de carga:

  • HAProxy
  • MariaDB MaxScale
  • ProxySQL
  • Keepalived (solo dirección IP virtual)

Tenga en cuenta que ClusterControl debe residir en un nodo independiente, separado de su clúster de base de datos.

Con respecto a la gestión de consultas, ClusterControl le permite absorber lo siguiente (usted puede ver estas cosas una vez que haya cambiado a la pestaña Query Monitor):

  • Puede ver las principales consultas lentas y de ejecución prolongada.
  • Puede ver una lista de las consultas que se están ejecutando actualmente.
  • Puede ver una lista de valores atípicos de consulta.

Esta pestaña le proporciona una lista agregada de todas las consultas principales que se ejecutan en todos los nodos de su clúster de base de datos. ClusterControl obtiene la información de una de estas dos formas:

  1. Las consultas se recuperan de PERFORMANCE_SCHEMA o
  2. Si PERFORMANCE_SCHEMA está deshabilitado o no está disponible, ClusterControl analizará el contenido del registro de consultas lentas.

Si el registro de consultas lentas está en uso, solo se enumerarán aquí las consultas que excedan el tiempo de consulta prolongado.

Long Query Time recopila las consultas que tardan más de segundos en ejecutarse que Long Query Time (por ejemplo, si Long Query Time es 0,1, solo se registrarán las consultas que tardan más de 0,1 segundos en ejecutarse), “ ¿consultas de registro que no usan índices?” configura el comportamiento de ClusterControl con respecto a consultas sin índices, etc.

La tabla de consultas principales se actualiza automáticamente cada 30 segundos (la frecuencia de actualización se puede cambiar). Las columnas de la tabla de consultas principales contienen una lista de consultas de muestra, nombres de bases de datos, el número total de ocurrencias de consultas, el número de filas involucradas en operaciones, el número de tablas temporales creadas para una consulta determinada, etc. - la lista de consultas principales agregadas también se puede ordenar por Ocurrencia o Tiempo de ejecución para mostrar las consultas más comunes o las más lentas.

ClusterControl también le permite ver una lista de consultas actualmente en ejecución. Esta página también se actualiza automáticamente cada 30 segundos y muestra:

  • El servidor MySQL del que se recupera el proceso.
  • El ID de conexión.
  • El nombre de la base de datos.
  • El usuario de MySQL que emitió la declaración.
  • El tiempo de ejecución del subproceso de MySQL en segundos.
  • El nombre de host del cliente que emite la declaración.
  • El tipo de comando que ejecuta el subproceso.
  • El estado del hilo (como se explica en la documentación de MySQL)

La página de consultas de valores atípicos muestra las consultas que se consideran "atípicos". En otras palabras, esta página muestra todas las consultas que tardan más en ejecutarse que una consulta normal de ese tipo, definiéndose más tiempo como una desviación de latencia de 2 sigmas + promedio_query_time. Esta página muestra:

  • La hora exacta en que se capturó la consulta.
  • La consulta en sí.
  • El tiempo que tardó en ejecutarse la consulta SQL.
  • El tiempo promedio de ejecución de la consulta SQL.
  • El tiempo de ejecución de la desviación estándar (microsegundos).
  • El tiempo máximo de ejecución de la consulta (microsegundos).
  • El tiempo de bloqueo de la consulta (microsegundos).

La pestaña del monitor de consultas proporciona un resumen del procesamiento de consultas en todos los nodos del clúster.

Resumen

Cuando se trata de monitorear el rendimiento de sus bases de datos MySQL, ClusterControl puede hacer maravillas. ClusterControl puede simplificar la implementación de balanceadores de carga, puede ayudarlo a administrar fácilmente sus consultas y monitorear su rendimiento, ClusterControl también puede calcular el rendimiento esperado de las consultas en función de los datos históricos.