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

Qué monitorear en MySQL 8.0

La supervisión es imprescindible en todos los entornos y las bases de datos no son la excepción. Una vez que tenga la infraestructura de su base de datos en funcionamiento, deberá estar al tanto de lo que sucede. La supervisión es imprescindible si desea asegurarse de que todo va bien, pero también si realiza los ajustes necesarios mientras su sistema crece y evoluciona. Eso le permitirá identificar tendencias, planificar actualizaciones o mejoras, o reaccionar adecuadamente ante cualquier problema o error que pueda surgir con nuevas versiones, diferentes propósitos, etc.

Para cada tecnología de base de datos, hay cosas diferentes para monitorear. Algunos de estos son específicos del motor de la base de datos, el proveedor o incluso la versión particular que está utilizando. Los clústeres de bases de datos dependen en gran medida de la infraestructura subyacente, por lo que las estadísticas operativas y de red también son interesantes para los administradores de bases de datos.

Cuando se ejecutan múltiples sistemas de bases de datos, el monitoreo de estos sistemas puede convertirse en una tarea ardua.

En este blog, veremos lo que necesita para monitorear un entorno MySQL 8.0. También analizaremos las funciones de monitoreo de control de clústeres, que pueden ayudarlo a realizar un seguimiento del estado de sus bases de datos de forma gratuita.

Supervisión del sistema operativo y de la base de datos

Al observar un clúster o nodo de base de datos, hay dos puntos principales a tener en cuenta:el sistema operativo y la instancia de MySQL en sí. Deberá definir qué métricas va a monitorear desde ambos lados y cómo lo va a hacer. Debe seguir el parámetro siempre en el significado de su sistema, y ​​debe buscar alteraciones en el modelo de comportamiento.

Tenga en cuenta que cuando uno de sus parámetros se ve afectado, también puede afectar a otros, lo que complica la resolución del problema. Disponer de un adecuado sistema de monitorización y alertas es fundamental para que esta tarea sea lo más sencilla posible.

En la mayoría de los casos, necesitará usar algunas herramientas, ya que es difícil encontrar una que cubra todas las métricas deseadas.

Supervisión del sistema operativo

Una cosa importante (que es común a todos los motores de base de datos e incluso a todos los sistemas) es monitorear el comportamiento del sistema operativo. Aquí hay algunos puntos para verificar aquí. A continuación, puede encontrar los mejores recursos del sistema para ver en un servidor de base de datos. En realidad, también es la lista de las primeras cosas que debe verificar.

Uso de CPU

Un uso elevado de la CPU no es malo siempre y cuando no alcance el límite. Un porcentaje excesivo de uso de la CPU podría ser un problema si no es un comportamiento habitual. En este caso, es fundamental identificar el proceso/procesos que están generando este problema. Si el problema es el proceso de la base de datos, deberá verificar qué sucede dentro de la base de datos.

Uso de memoria RAM o SWAP

Idealmente, toda su base de datos debería almacenarse en la memoria, pero esto no siempre es posible. Proporcione a MySQL todo lo que pueda pagar, pero deje lo suficiente para que funcionen otros procesos.

Si ve un valor alto para esta métrica y nada ha cambiado en su sistema, probablemente necesite verificar la configuración de su base de datos. Parámetros como shared_buffers y work_mem pueden afectar esto directamente ya que definen la cantidad de memoria que se puede usar para la base de datos MySQL. El intercambio es solo para emergencias y no debe usarse. Asegúrese de que su sistema operativo también esté configurado para permitir que MySQL decida sobre el uso del intercambio.

Uso de disco 

El uso del disco es una de las métricas clave para monitorear y alertar. Asegúrese de tener siempre espacio libre para nuevos datos, archivos temporales, instantáneas o copias de seguridad.

Supervisar los valores de las métricas estrictas no es suficiente. Un aumento anormal en el uso del espacio en disco o un consumo excesivo de acceso al disco son cosas esenciales a tener en cuenta, ya que podría tener una gran cantidad de errores registrados en el archivo de registro de MySQL o una configuración de caché deficiente que podría generar un consumo de acceso al disco vital en lugar de utilizando la memoria para procesar las consultas. Asegúrese de poder detectar comportamientos anormales incluso si aún no se alcanzan las métricas críticas y de advertencia.

Además de monitorear el espacio, también debemos monitorear la actividad del disco. Los principales valores a monitorear son:

  • Solicitudes de lectura/escritura
  • Longitud de cola de E/S
  • Promedio de espera de E/S
  • Tiempo promedio de lectura/escritura
  • Ancho de banda de lectura/escritura

Puede usar iostat o pt-diskstats de Percona para ver todos estos detalles.

Las cosas que pueden afectar el rendimiento de su disco a menudo están relacionadas con la transferencia de datos desde y hacia su disco, por lo tanto, controle los procesos anormales que pueden iniciar otros usuarios.

Promedio de carga

Una métrica de rendimiento todo en uno. Comprender la carga de Linux es clave para monitorear el sistema operativo y los sistemas dependientes de la base de datos.

Promedio de carga relacionado con los tres puntos mencionados anteriormente. Un uso excesivo de CPU, RAM o disco podría generar un promedio de carga alto.

Red

A menos que haga copias de seguridad o transfiera grandes cantidades de datos, no debería ser el cuello de botella.

Un problema de red puede afectar a todos los sistemas ya que la aplicación no puede conectarse (o conectar paquetes perdidos) a la base de datos, por lo que esta es una métrica importante para monitorear. Puede monitorear la latencia o la pérdida de paquetes, y el problema principal podría ser una saturación de la red, un problema de hardware o simplemente una mala configuración de la red.

Supervisión de la base de datos

Si bien el monitoreo es obligatorio, generalmente no es gratuito. Siempre hay un costo en el rendimiento de la base de datos, dependiendo de cuánto esté monitoreando, por lo que debe evitar monitorear cosas que no usará.

En general, hay dos formas de monitorear sus bases de datos, desde los registros o desde el lado de la base de datos mediante consultas.

En el caso de los logs, para poder utilizarlos es necesario tener un nivel de registro alto, lo que genera un alto acceso al disco y puede afectar el rendimiento de tu base de datos.

Para el modo de consulta, cada conexión a la base de datos usa recursos, por lo que dependiendo de la actividad de su base de datos y los recursos asignados, también puede afectar el rendimiento.

Por supuesto, hay muchas métricas en MySQL. Aquí nos centraremos en lo más importante.

Supervisión de sesiones activas

También debe realizar un seguimiento del número de sesiones activas y el estado de subida y bajada de la base de datos. A menudo, para comprender el problema, necesita ver cuánto tiempo se ejecuta la base de datos. entonces podemos usar esto para detectar reapariciones.

Lo siguiente sería una serie de sesiones. Si está cerca del límite, debe verificar si algo está mal o si solo necesita incrementar el valor de max_connections. La diferencia en el número puede ser un aumento o disminución de conexiones. El uso inadecuado de la agrupación de conexiones, el bloqueo o los problemas de red son los problemas más comunes relacionados con la cantidad de conexiones.

Los valores clave aquí son

  • Tiempo de actividad
  • Subprocesos_conectados
  • Max_used_connections
  • Conexiones_abortadas

Bloqueos de base de datos

Si tiene una consulta en espera de otra consulta, debe verificar si esa otra consulta es un proceso normal o algo nuevo. En algunos casos, si alguien está realizando una actualización en una tabla grande, por ejemplo, esta acción puede estar afectando el comportamiento normal de su base de datos, generando una gran cantidad de bloqueos.

Supervisión de la replicación

Las métricas clave para monitorear la replicación son el retraso y el estado de la replicación. No solo el estado up-down sino también el retraso porque un aumento continuo en este valor no es una muy buena señal, ya que significa que el esclavo no puede alcanzar a su maestro.

Los problemas más comunes son problemas de red, problemas de recursos de hardware o problemas de subdimensionamiento. Si se enfrenta a un problema de replicación, deberá saberlo lo antes posible, ya que deberá solucionarlo para garantizar un entorno de alta disponibilidad.

La replicación se supervisa mejor comprobando el ESTADO DEL ESCLAVO y los siguientes parámetros:

  • SLAVE_RUNNING
  • SLAVE_IO_Running
  • SLAVE_SQL_EN EJECUCIÓN
  • LAST_SQL_ERRNO
  • SECONDS_BEHIND_MASTER

Copias de seguridad

Desafortunadamente, la edición Vanilla Community no viene con el administrador de copias de seguridad. Debe saber si la copia de seguridad se completó y si se puede utilizar. Por lo general, este último punto no se tiene en cuenta, pero probablemente sea la comprobación más crítica en un proceso de copia de seguridad. Aquí tendríamos que usar herramientas externas como percona-xtrabackup o ClusterControl.

Registros de la base de datos

Debe monitorear el registro de su base de datos en busca de errores como FATAL o interbloqueo, o incluso errores comunes como problemas de autenticación o consultas de ejecución prolongada. La mayoría de los errores se escriben en el archivo de registro con información detallada y útil para solucionarlo. Los puntos de falla comunes que debe vigilar son los errores y el tamaño de los archivos de registro. La ubicación del registro de errores se puede encontrar en la variable log_error.

Herramientas externas

Por último, pero no menos importante, puede encontrar una lista de herramientas útiles para monitorear la actividad de su base de datos.

Percona Toolkit - es el conjunto de herramientas de Linux de Percona para analizar las actividades de MySQL y OS. Lo puedes encontrar aquí. Es compatible con las distribuciones de Linux de 64 bits más populares, como Debian, Ubuntu y Redhat.

mysqladmin - mysqladmin es un programa de administración para el demonio MySQL. Se puede usar para verificar el estado del servidor (ping), enumerar los procesos, ver los valores de las variables, pero también para realizar tareas administrativas como crear/descartar bases de datos, vaciar (restablecer) registros, estadísticas y tablas, eliminar consultas en ejecución, detener el servidor y controlar la replicación.

innotop:ofrece una vista ampliada de las declaraciones SHOW. Es muy poderoso y puede reducir significativamente el tiempo de investigación. Entre el soporte básico de MySQL, puede ver la vista de Galera y los detalles de replicación maestro-esclavo.

mtop:supervisa un servidor MySQL y muestra las consultas que tardan más tiempo en completarse. Las funciones incluyen 'acercar' un proceso para mostrar la consulta completa, 'explicar' la información del optimizador de consultas para una consulta y 'eliminar' consultas. Además, se proporcionan estadísticas de rendimiento del servidor, información de configuración y sugerencias de ajuste.

Mytop:se ejecuta en una terminal y muestra estadísticas sobre subprocesos, consultas, consultas lentas, tiempo de actividad, carga, etc. en formato tabular, muy similar a Linux

Conclusión

Este blog no pretende ser una guía exhaustiva sobre cómo mejorar el monitoreo de la base de datos, pero se espera que brinde una imagen más clara de qué cosas pueden volverse esenciales y algunos de los parámetros básicos que se pueden monitorear. No dude en informarnos si nos hemos perdido alguno importante en los comentarios a continuación.