Método RED para analizar el rendimiento de MySQL

La traducción del artículo se preparó antes del inicio del curso "Prácticas y herramientas de DevOps" .










El método RED (Tasa, Errores, Duración) es uno de los enfoques populares para el monitoreo del desempeño. A menudo se usa para monitorear microservicios , aunque nada le impide usarlo para bases de datos como MySQL.



En Percona Monitoring and Management (PMM) v2, toda la información necesaria se recopila en la base de datos de ClickHouse, y luego es una cuestión de tecnología crear un tablero para visualizar métricas usando la fuente de datos incorporada de ClickHouse .



Al crear el tablero, además de los paneles para RED, se agregaron varios paneles adicionales para mostrar algunas cosas interesantes que se pueden hacer con Grafana + ClickHouse como fuente de datos e información que almacenamos sobre el rendimiento de las consultas MySQL.



Echemos un vistazo más de cerca al tablero.







Vemos los paneles RED clásicos que muestran la tasa de consulta (solicitudes por segundo), la tasa de error (errores), así como la latencia de consulta promedio y percentil 99 (tiempo de ejecución de la consulta) para todos los nodos del sistema. Los paneles siguientes muestran información sobre nodos específicos, lo que es muy útil para comparar su rendimiento. Si uno de los nodos comienza a funcionar de manera diferente a otros nodos similares, entonces este es un motivo de investigación.



Con la ayuda de filtros ("Filtros" en la parte superior del panel), puede ver solo los datos que necesita. Por ejemplo, puede seleccionar solo consultas de esquema "sbtest" para los hosts ubicados en la región "datacenter4":







Este filtrado ad-hoc es muy conveniente. Puede usar expresiones regulares en filtros, buscar por un QueryID específico, analizar consultas de hosts de clientes específicos, etc. Para obtener una descripción de las columnas disponibles en ClickHouse, consulte la publicación Análisis avanzado de consultas en Percona Monitoring and Management con acceso directo a ClickHouse .



Desde la mayoría de los paneles, puede ir rápidamente a Análisis de consultas para ver información detallada sobre el rendimiento de las consultas, o si nota algo inusual en uno de los hosts, puede ver las consultas de este host a través de los "Enlaces de datos". gráfico y siga el enlace dedicado:







Para cada uno de los sistemas por separado, puede ver las mismas métricas RED que para todo el sistema en su conjunto. De forma predeterminada, dejaría estos paneles minimizados, especialmente si está monitoreando muchos hosts.



Nos familiarizamos con los paneles del método RED. Ahora echemos un vistazo a los paneles adicionales en este panel.







La eficiencia basada en filas muestra cuántas filas se analizaron por fila devuelta o modificada. Normalmente, los valores superiores a 100 indican índices incorrectos o consultas muy complejas que leen una gran cantidad de datos y solo devuelven algunas filas. Ambos casos requieren análisis.



Eficiencia basada en el tiempo(eficiencia basada en el tiempo) se basa en las mismas matemáticas, pero analiza el tiempo de ejecución de la consulta en lugar del número de filas analizadas. Esto le permite diagnosticar problemas con un disco lento o solicitudes en conflicto. Normalmente, un sistema de alto rendimiento debe esperar fracciones de milisegundo para enviar o modificar una cadena al cliente. Las consultas que devuelven o actualizan muchas filas tendrán un valor menor.



Consultas por host(el número de solicitudes por host) habla por sí mismo y junto a él es muy útil ver la Carga de consultas por host (carga por hosts), que muestra la cantidad de solicitudes activas concurrentes. Aquí podemos ver que a pesar de que mysql4 no tiene el mayor número de consultas (tasa de consultas), tiene la carga más alta y el número promedio más alto de consultas activas.



Pensando en qué otras métricas podrían ser útiles, agregué los siguientes paneles adicionales:







Estos paneles separan la eficiencia del procesamiento de consultas en consultas READ (que devuelven filas) y consultas WRITE (que tienen row_affected).



La eficiencia basada en QueryTime es la misma que la descrita anteriormente, solo con un énfasis en ciertos tipos de consultas.



Eficiencia de procesamiento de datos(eficiencia de procesamiento de datos) es una mirada ligeramente diferente a los mismos datos. Esto muestra cuántas filas examina la consulta frente al tiempo de ejecución de la consulta. Esto, por un lado, muestra la potencia de procesamiento del sistema. Un sistema con muchos núcleos, que tiene todos los datos en la memoria, puede procesar millones de filas por segundo y hacer mucho trabajo. Pero eso no significa eficiencia de consultas. De hecho, los sistemas que procesan una gran cantidad de datos rápidamente a menudo realizan muchos escaneos completos de tablas.



Finalmente, hay varias listas de solicitudes.







Consultas frecuentes, consultas más lentas (por tiempo de ejecución promedio), consultas con la carga más alta y consultas que fallaron o fallaron. También puede ver estas consultas en Query Analytics, pero quería mostrarlas aquí como ejemplo.



¿Estás interesado? Puede instalar el panel en Percona Monitoring and Management (PMM) v2 desde Grafana.com .






Del código a kubernetes







All Articles