Monitorización del sistema operativo - AWS Guía prescriptiva

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Monitorización del sistema operativo

Una instancia de base de datos de Amazon RDS para MySQL o MariaDB se ejecuta en el sistema operativo Linux, que utiliza los recursos subyacentes del sistema: CPU, memoria, red y almacenamiento.

MySQL [(none)]> SHOW variables LIKE 'version%'; +-------------------------+---------------------+ | Variable_name | Value | +-------------------------+---------------------+ | version | 8.0.28 | | version_comment | Source distribution | | version_compile_machine | aarch64 | | version_compile_os | Linux | | version_compile_zlib | 1.2.11 | +-------------------------+---------------------+ 5 rows in set (0.00 sec)

El rendimiento general de la base de datos y del sistema operativo subyacente dependen en gran medida de la utilización de los recursos del sistema. Por ejemplo, la CPU es el componente clave del rendimiento del sistema, ya que ejecuta las instrucciones del software de la base de datos y administra otros recursos del sistema. Si la CPU se utiliza en exceso (es decir, si la carga requiere más potencia de CPU de la que se suministró para la instancia de base de datos), este problema afectaría al rendimiento y la estabilidad de la base de datos y, en consecuencia, a la aplicación.

El motor de base de datos asigna y libera memoria de forma dinámica. Cuando no hay suficiente memoria en la RAM para realizar el trabajo actual, el sistema escribe páginas de memoria en la memoria de intercambio, que reside en el disco. Como el disco es mucho más lento que la memoria, incluso si el disco está basado en la tecnología SSD NVMe, la asignación excesiva de memoria provoca una degradación del rendimiento. El uso elevado de la memoria provoca un aumento de la latencia de las respuestas de la base de datos, ya que el tamaño de un archivo de página aumenta para admitir memoria adicional. Si la asignación de memoria es tan alta que agota tanto la RAM como los espacios de memoria de intercambio, es posible que el servicio de base de datos deje de estar disponible y los usuarios puedan observar errores como[ERROR] mysqld: Out of memory (Needed xyz bytes).

Los sistemas de administración de bases de datos MySQL y MariaDB utilizan el subsistema de almacenamiento, que consiste en discos que almacenanestructuras en discocomo tablas, índices, registros binarios, registros de rehacer, deshacer registros y archivos de búfer de doble escritura. Por lo tanto, la base de datos, a diferencia de otros tipos de software, debe realizar mucha actividad en el disco. Para un funcionamiento óptimo de la base de datos, es importante que supervise y ajuste la utilización de la E/S del disco y la asignación del espacio en disco. El rendimiento de la base de datos puede verse afectado cuando la base de datos alcanza los límites de IOPS o rendimiento máximos admitidos por el disco. Por ejemplo, las ráfagas de acceso aleatorio causadas por un escaneo de índices pueden provocar una gran cantidad de operaciones de E/S por segundo, lo que eventualmente podría afectar a las limitaciones del almacenamiento subyacente. Es posible que los escaneos de tablas completas no alcancen el límite de IOPS, pero pueden provocar un alto rendimiento que se mide en megabytes por segundo. Es fundamental monitorear y generar alertas sobre la asignación de espacio en disco, ya que errores comoOS error code 28: No space left on devicepuede provocar la falta de disponibilidad y la corrupción de la base de datos.

Amazon RDS proporciona métricas en tiempo real del sistema operativo en el que se ejecuta la instancia de base de datos. Amazon RDS publica automáticamente un conjunto de métricas del sistema operativo enCloudWatch. Estas métricas están disponibles para su visualización y análisis en la consola de Amazon RDS y enCloudWatchpaneles de control, y puede configurar alarmas en las métricas seleccionadas enCloudWatch. Entre los ejemplos se incluyen:

  • CPUUtilization— El porcentaje de utilización de la CPU.

  • BinLogDiskUsage— La cantidad de espacio en disco que ocupan los registros binarios.

  • FreeableMemory— La cantidad de memoria de acceso aleatorio disponible. Esto representa el valor delMemAvailablecampo de/proc/meminfo.

  • ReadIOPS— El número promedio de operaciones de E/S de lectura de disco por segundo.

  • WriteThroughput— El número promedio de bytes escritos en el disco por segundo para el almacenamiento local.

  • NetworkTransmitThroughput— El tráfico de red saliente en el nodo de base de datos, que combina el tráfico de la base de datos y el tráfico de Amazon RDS utilizados para la supervisión y la replicación.

Para obtener una referencia completa de todas las métricas publicadas por Amazon RDS, visiteCloudWatch, consulteAmazonCloudWatchmétricas para Amazon RDSen la documentación de Amazon RDS.

La siguiente tabla muestra ejemplos deCloudWatchmétricas de Amazon RDS que se muestran en la consola de Amazon RDS.

CloudWatchlas métricas de Amazon RDS se muestran en la consola de Amazon RDS

El siguiente gráfico muestra métricas similares que se muestran enCloudWatchsalpicadero.

CloudWatchmétricas de Amazon RDS que se muestran en elCloudWatchconsola

El otro conjunto de métricas del sistema operativo se recopila medianteMonitorización mejoradapara Amazon RDS. Esta herramienta le ofrece una mayor visibilidad del estado de sus instancias de base de datos de Amazon RDS para MariaDB y Amazon RDS para MySQL, ya que proporciona métricas del sistema e información sobre los procesos del sistema operativo en tiempo real. Cuando túhabilitar la monitorización mejoradaen su instancia de base de datos y configurando la granularidad deseada, la herramienta recopila las métricas del sistema operativo y la información del proceso, que puede mostrar y analizar enConsola Amazon RDS, como se muestra en la siguiente pantalla.

Métricas del sistema operativo recopiladas por Enhanced Monitoring

Algunas de las métricas clave que proporciona Enhanced Monitoring son:

  • cpuUtilization.total— El porcentaje total de la CPU en uso.

  • cpuUtilization.user— El porcentaje de CPU que utilizan los programas de usuario.

  • memory.active— La cantidad de memoria asignada, en kilobytes.

  • memory.cached— La cantidad de memoria utilizada para almacenar en caché las E/S basadas en el sistema de archivos.

  • loadAverageMinute.one— El número de procesos que solicitaron tiempo de CPU durante el último minuto.

Para obtener una lista completa de las métricas, consulteMétricas del sistema operativo en Enhanced Monitoringen la documentación de Amazon RDS.

En la consola de Amazon RDS, la lista de procesos del sistema operativo proporciona detalles de cada proceso que se ejecuta en la instancia de base de datos. La lista está organizada en tres secciones:

  • Procesos del sistema operativo‒ Esta sección representa un resumen agregado de todos los procesos del núcleo y del sistema. Por lo general, estos procesos tienen un impacto mínimo en el rendimiento de la base de datos.

  • Procesos de RDS— Esta sección representa un resumen de laAWSprocesos necesarios para admitir una instancia de base de datos de Amazon RDS. Por ejemplo, incluye el agente de administración de Amazon RDS, los procesos de monitoreo y diagnóstico y procesos similares.

  • Procesos secundarios de RDS— Esta sección representa un resumen de los procesos de Amazon RDS que admiten la instancia de base de datos; en este caso, elmysqldproceso y sus hilos. Elmysqldlos hilos aparecen anidados debajo del elemento principalmysqldproceso.

La siguiente ilustración de la pantalla muestra la lista de procesos del sistema operativo en la consola de Amazon RDS.

Lista de procesos del sistema operativo en la consola de Amazon RDS

Amazon RDS incluye las métricas de la monitorización mejorada en suCloudWatchCuenta de registros. Los datos de monitorización que se muestran en la consola de Amazon RDS se obtienen deCloudWatchRegistros. También puedesrecuperar las métricas de una instancia de base de datos como un flujo de registrodeCloudWatchRegistros. Estas métricas se almacenan en formato JSON. Puede consumir la salida JSON de monitorización mejorada desdeCloudWatchInicia sesión en un sistema de monitoreo de su elección.

Para mostrar gráficos en elCloudWatchpanel y crear alarmas que inicien una acción si una métrica supera el umbral definido, debe crear filtros de métricas enCloudWatchdeCloudWatchRegistros. Para obtener instrucciones detalladas, consulte laArtículo de AWS re:postsobre cómo filtrar la monitorización mejoradaCloudWatchRegistros para generar métricas personalizadas automatizadas para Amazon RDS.

El siguiente ejemplo ilustra la métrica personalizada.CPU.Useren elCustom/RDSespacio de nombres. Esta métrica personalizada se crea filtrando elcpuUtilization.userMétrica de monitoreo mejorada deCloudWatchRegistros.

Métrica personalizada de CPU.User

Cuando la métrica esté disponible en elCloudWatchrepositorio, puede mostrarlo y analizarlo enCloudWatchpaneles, aplique más operaciones matemáticas y de consulta y configure una alarma para monitorear esta métrica específica y generar alertas si los valores observados no están en línea con las condiciones de alarma definidas.