sql >> Base de Datos >  >> RDS >> MariaDB

Supervisión del rendimiento de MariaDB en una nube híbrida

El rendimiento en nuestra base de datos MariaDB es una de las áreas que queremos monitorear de cerca y observar en un entorno de producción y su condición de ejecución oportuna. Puede ser extremadamente exigente en cuanto a tiempo, trabajo y dinero si la configuración arquitectónica utiliza una nube híbrida. No solo eso, hay ciertas áreas para observar, especialmente el intermediario de la red que sirve su conectividad como una nube local o privada que se comunica con la nube pública (GCP, AWS, Azure, etc.) y viceversa. .

Este blog se trata de monitorear el rendimiento de sus bases de datos MariaDB en una infraestructura de nube híbrida. Le proporcionaremos los conceptos básicos y los indicadores clave más importantes al monitorear el rendimiento de su base de datos MariaDB dentro de una configuración de nube híbrida.

¿Por qué necesita la supervisión del rendimiento?

En una nube híbrida, puede ser complicado monitorear cada servicio que utiliza. A diferencia de su propio centro de datos o su nube privada, tiene control total sobre la infraestructura de hardware y software. Con la nube pública, existen limitaciones en los servicios que ofrece y puede incurrir en un costo adicional si desea diferentes servicios que le proporcionen métricas y registros. La seguridad también es una preocupación con respecto a los datos confidenciales que se recopilan.

La supervisión del rendimiento ayuda a determinar la eficiencia y la rapidez con que se ejecutan sus bases de datos en la nube, en las instalaciones o en la nube pública o privada. En la práctica, un conjunto de procesos y herramientas probados y basados ​​en resultados que le proporcionarán métricas en tiempo real o periódicas.

Dentro de una nube híbrida, no todas las herramientas de monitoreo de software están diseñadas para administrar métricas clave que deben observarse y monitorearse. Debe tener la idea y el conocimiento para determinar las métricas y los requisitos necesarios que puede proporcionar la herramienta. Con una nube híbrida, se espera que la naturaleza del funcionamiento de una nube híbrida pueda ser compleja. Los servicios están muy distribuidos y mezclados con otros servicios que no están ligados a un solo proveedor.

En ese sentido, su software de monitoreo tiene estas especialidades y también tiene la capacidad de identificar y desvincularse de qué nube pertenece. Un software o herramientas de monitoreo deben tener la capacidad de abordar cuellos de botella, problemas de seguridad, latencias, proporcionar escalabilidad, notificar sobre problemas continuos y proporcionar predicciones. La predicción puede evitar otras consecuencias que pueden conducir a un desastre o afectar la eficiencia de sus bases de datos MariaDB. Esto ayuda a todo el equipo, incluidos los ingenieros de infraestructura, los ingenieros de bases de datos, los administradores de servidores y los desarrolladores, a garantizar que los servidores de bases de datos estén en buen estado y funcionen al nivel de las expectativas.

Cosas a considerar para el monitoreo de bases de datos

Al monitorear su clúster de base de datos MariaDB (replicación o Galera) o nodo, hay dos cosas principales a tener en cuenta:el sistema operativo y la base de datos en sí. Deberá definir qué métricas va a monitorear desde ambos lados y cómo lo va a hacer. Debe monitorear la métrica siempre en el contexto de su sistema, y ​​debe buscar alteraciones en el patrón de comportamiento.

En la mayoría de los casos, necesitará usar varias herramientas (ya que es casi imposible encontrar una que cubra todas las métricas deseadas). 

Recuerde que cuando una de sus métricas se ve afectada, también puede afectar a otras, lo que hace que la solución del problema sea más compleja. Tener un buen sistema de monitoreo y alertas es importante para que esta tarea sea lo más simple posible.

Supervise siempre la actividad de su servidor (red, disco, carga, memoria y CPU)

Supervisar la actividad de su servidor también puede ser una tarea compleja si tiene una pila muy complicada que está entrelazada en la arquitectura de su base de datos. Sin embargo, para una base de datos MariaDB, siempre es mejor tener sus nodos configurados como un servidor dedicado para obtener una introspección completa por nodo. Aunque eso no le impide usar todos los recursos de repuesto, a continuación se encuentran las áreas clave comunes que debe investigar.

Red

En una infraestructura de nube híbrida, es una de las preocupaciones más importantes a tener en cuenta, ya que debe tener en cuenta el tipo de diseño y cómo se comunica desde la nube local o privada a la nube pública. y viceversa. De cualquier manera, uno de los clústeres o nodos se especializa en su rol como principal para recibir escrituras o sirve como recuperación ante desastres. En ese sentido, no desea que sus nodos de recuperación tengan latencias, peor aún, se producen grandes retrasos en la replicación. Siempre que se produzcan retrasos y cuando el clúster principal de una nube en particular (digamos que en las instalaciones) deja de funcionar, su nube pública debe tomar el control, pero podrá brindar los datos más actualizados. Siempre que esto suceda, es posible que deba agregar un mecanismo previo a la conmutación por error que se encargue de las copias de seguridad incrementales o PITR en caso de que algunas transacciones o escrituras aún no se hayan aplicado en su clúster de recuperación (o en este caso, su clúster de nube pública).

Si está utilizando Galera, dado que MariaDB actualizó su Galera a la versión 4, la replicación de transmisión se agrega como una de las características clave y cambios de la versión anterior. Dado que la replicación de transmisión soluciona los inconvenientes que tenía en las versiones anteriores, pero le permite administrar más de 2 GB de conjuntos de escritura desde Galera Cluster 4. Esto permite que se fragmenten grandes transacciones y se recomienda habilitar esto solo durante el nivel de sesión. Esto significa que monitorear la actividad de su red es muy importante y crucial para la actividad normal de su clúster MariaDB. Esto lo ayudará a identificar qué nodo tuvo la mayor cantidad o el mayor tráfico de red según el período de tiempo.

Un buen ejemplo de monitoreo de red de renderizado es usar ClusterControl. Identifica cada uno de los nodos y proporciona una descripción general de su actividad de red por nodo, independientemente de en qué nube se encuentre el nodo. Vea la captura de pantalla a continuación:

CPU, memoria y actividad de carga

Permítanme mencionar brevemente estas tres áreas a tener en cuenta al monitorear. En esta sección, siempre es mejor tener una mejor observabilidad de las siguientes áreas a la vez. Es rápido y fácil de entender y ayuda a descartar un cuello de botella en el rendimiento o a identificar errores que hacen que sus nodos se detengan o afecten a los otros nodos o incluso que tengan la posibilidad de que un clúster se caiga.

Entonces, ¿cómo la CPU, la memoria y la actividad de carga al monitorear ayudan a su MariaDB? Bueno, como mencioné anteriormente, esas son una de las pocas cosas que aún son un factor importante para los controles de rutina diarios. Ahora, esto también lo ayuda a identificar si se trata de ocurrencias periódicas o aleatorias. Si es periódico, puede estar relacionado con las copias de seguridad que se ejecutan en uno de los nodos de la base de datos de MariaDB, o es una consulta masiva que requiere optimización. Por ejemplo, consultas incorrectas sin índices adecuados o uso desequilibrado de la recuperación de datos, como hacer una comparación de cadenas para una cadena tan grande. Eso puede ser innegablemente inaplicable para las bases de datos de tipo OLTP, especialmente si es realmente la naturaleza y los requisitos de su aplicación. Utilice mejor otras herramientas analíticas como MariaDB Columnstore u otras herramientas de procesamiento analítico de terceros (Apache Spark, Kafka o MongoDB, etc.) para la recuperación de datos de cadenas grandes y/o la coincidencia de cadenas.

Entonces, con todas estas áreas clave siendo monitoreadas, la pregunta es, ¿cómo se monitoreará? Tiene que ser monitoreado al menos por minuto. Con un monitoreo refinado, es decir, por segundo de métricas colectivas, puede ser un recurso intensivo y muy codicioso en términos de sus recursos. Aunque medio minuto de colectividad es aceptable, especialmente si sus datos y RPO (objetivo de punto de recuperación) son muy bajos, por lo que necesita métricas de datos más granulares y en tiempo real. Es muy importante que pueda supervisar la imagen completa de su clúster de base de datos. Aparte de esto, también es mejor e importante que, independientemente de las métricas que esté monitoreando, tenga la herramienta adecuada para llamar su atención cuando las cosas estén en peligro o incluso solo sean advertencias. El uso de la herramienta adecuada, como ClusterControl, lo ayuda a administrar estas áreas clave que se monitorearán. Estoy usando una versión gratuita o una edición comunitaria de ClusterControl que me ayuda a monitorear mis nodos sin problemas desde la instalación hasta el monitoreo de los nodos con solo unos pocos clics. Por ejemplo, vea las capturas de pantalla a continuación:

También proporciona una base por nodo con una descripción general gráfica simple,

o con un modelo de datos más potente y enriquecido que también admita el lenguaje de consulta usando Prometheus, puede proporcionarle un análisis del rendimiento de su base de datos MariaDB en función de los datos históricos comparando su rendimiento de manera oportuna. Por ejemplo,

Eso solo le proporciona métricas más visibles. Entonces ve lo importante que es realmente tener la herramienta adecuada al monitorear su base de datos MariaDB en una Nube Híbrida.

Monitoreo colectivo de sus variables estadísticas de MariaDB

De vez en cuando, no puede ser inevitable que las versiones de la base de datos MariaDB produzcan nuevas estadísticas para monitorear o mejorar la naturaleza del monitoreo de la base de datos al proporcionar más variables de estado y refinar valores para observar.

Bytes enviados/recibidos

Los bytes enviados o recibidos se correlacionan con la actividad de red y es una de las áreas clave para observar en paralelo, especialmente en una topología de nube híbrida. Esto le permite determinar qué nodo es el más afectado o el que se atribuye a los problemas de rendimiento que están sufriendo dentro de su base de datos MariaDB. Es muy importante ya que puede verificar si puede haber alguna degradación en términos de hardware, como su dispositivo de red o el dispositivo de almacenamiento subyacente para el cual la sincronización de páginas sucias puede llevar demasiado tiempo.

Vea la captura de pantalla de ejemplo,

Carga de clúster

Esta es más de la actividad de la base de datos de cuántos cambios o recuperación de datos se han consultado o realizado hasta ahora desde el tiempo de actividad del servidor. Le ayuda a descartar qué tipo de consultas afectan principalmente el rendimiento del clúster de su base de datos. Esto le permite brindar margen de mejora, especialmente en el equilibrio de la carga de las solicitudes de su base de datos.

Como tal, hay toneladas de variables para mirar en un servidor de base de datos MariaDB. Lo más importante que debe tener en cuenta aquí es la herramienta que está utilizando para monitorear su clúster de base de datos. Con ClusterControl (Community Edition), me brinda más formas con la flexibilidad de buscar en una base de datos MariaDB. Vea el ejemplo a continuación,

Entonces también puede seleccionar del menú desplegable para ver las otras variables,

Esto es muy útil y lo ayuda a determinar, por ejemplo, en una topología de replicación en una nube híbrida. Puede obtener una descripción general rápida de cuál es el estado y el rendimiento relacionados con la red, pero también con otros punteros variables para considerar y verificar cuáles son los cuellos de botella que afectarían el rendimiento de MariaDB en una topología de nube híbrida. Puede determinar si su aplicación es codiciosa con escrituras, luego la replicación y la transferencia de red se ven afectadas, puede obtener la interactividad del clúster dentro de dos o más infraestructuras en la nube. Lo mejor es determinar qué tan bien sus nodos pueden manejar el estrés. Especialmente durante las pruebas de estrés antes de impulsar cambios específicos en su aplicación, siempre es mejor probar y probar para determinar la administración de capacidad de su producto de aplicación y determinar si los nodos y el diseño de su base de datos actual pueden manejar la carga de los requisitos de su aplicación.

Para obtener métricas de datos más detalladas y ricas, puede obtener más datos mediante el monitoreo basado en agentes. Véase más abajo,

Así es como abordará el monitoreo de su clúster MariaDB. Una visualización perfecta es siempre más fácil y rápida de gestionar. Cuando las cosas van mal, no puede darse el lujo de perder su productividad y también el tiempo de inactividad puede afectar su negocio. Aunque tener una versión gratuita no te brinda el lujo y la comodidad a la hora de manejar bases de datos de alto tráfico; tener alarmas, notificaciones y administración de bases de datos en un área son complementos fáciles de usar que ClusterControl puede hacer.

Conclusión

Supervisar sus servidores de bases de datos MariaDB en un entorno de nube híbrida no es fácil y también es complicado, especialmente cuando hay una cantidad de servicios y relaciones complejas que formulan toda la pila de su tecnología. El uso de las herramientas adecuadas para el monitoreo lo ayuda a administrar su aplicación de manera efectiva y mejorar la productividad al mismo tiempo. Además, con las herramientas de monitoreo adecuadas a mano, tendrá más tiempo para concentrarse en mejorar sus aplicaciones junto con otros procesos comerciales.