

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.

# Supervisión de instancias de bases de datos
<a name="db-instance-monitoring"></a>

La [https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.DBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.DBInstance.html) es el componente básico de Amazon RDS. Es un entorno de base de datos aislado que se ejecuta en la nube. Para las bases de datos MySQL y MariaDB, la instancia de base de datos es [el](https://dev.mysql.com/doc/refman/8.0/en/mysqld.html) programa mysqld, también conocido como servidor MySQL, que incluye varios subprocesos y componentes, como el analizador SQL, el optimizador de consultas, el controlador thread/connection , las variables de sistema y estado y uno o más motores de almacenamiento conectables. Cada motor de almacenamiento está diseñado para admitir un caso de uso especializado. El motor de almacenamiento predeterminado y recomendado es [InnoDB](https://dev.mysql.com/doc/refman/8.0/en/innodb-architecture.html), que es un motor de base de datos relacional, transaccional y de uso general que cumple con el modelo de atomicidad, coherencia, aislamiento y durabilidad (ACID). InnoDB presenta [estructuras en memoria](https://dev.mysql.com/doc/refman/8.0/en/innodb-in-memory-structures.html) (grupo de búferes, búfer de cambios, índice hash adaptativo, búfer de registro) y [estructuras en disco](https://dev.mysql.com/doc/refman/8.0/en/innodb-on-disk-structures.html) (espacios de tablas, tablas, índices, registro de reversión, registro de recuperación de cambios, archivos de búfer de doble escritura). Para garantizar que la base de datos cumpla estrictamente el modelo ACID, el [motor de almacenamiento de InnoDB implementa numerosas funcionalidades](https://dev.mysql.com/doc/refman/8.0/en/mysql-acid.html) para proteger los datos, entre estos las transacciones, la confirmación, la reversión, la recuperación de bloqueos, el bloqueo a nivel de fila y el control de concurrencia multiversión (MVCC).

Todos estos componentes internos de una instancia de base de datos funcionan en conjunto para mantener la disponibilidad, integridad y seguridad de los datos con el nivel de rendimiento esperado y satisfactorio. Según la carga de trabajo, cada componente y característica puede exigir recursos a los subsistemas de CPU, memoria, red y almacenamiento. Cuando el aumento de la demanda de un recurso específico supera la capacidad aprovisionada o los límites del software de ese recurso (impuestos por los parámetros de configuración o por el diseño del software), la instancia de base de datos puede sufrir una degradación del rendimiento o una falta total de disponibilidad o corrupción. Por lo tanto, es fundamental medir y supervisar estos componentes internos, compararlos con los valores definidos de la línea de base y generar alertas si los valores supervisados se desvían de los valores esperados.

Como se describió anteriormente, puede utilizar otras [herramientas](monitoring-tools.md) para supervisar las instancias de MySQL y MariaDB. Le recomendamos que utilice Performance Insights y CloudWatch las herramientas de Amazon RDS para la supervisión y las alertas, ya que estas herramientas están integradas con Amazon RDS, recopilan métricas de alta resolución, presentan la información de rendimiento más reciente prácticamente en tiempo real y generan alarmas.

Sea cual sea la herramienta de supervisión que prefiera, le recomendamos que [active Performance Schema](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.EnableMySQL.html) en las instancias de bases de datos de MySQL y MariaDB. [Performance Schema](https://dev.mysql.com/doc/refman/8.0/en/performance-schema.html) es una característica opcional para supervisar el funcionamiento del servidor MySQL (la instancia de base de datos) a un nivel bajo y está diseñado para tener un impacto mínimo en el rendimiento general de la base de datos. Puede administrar esta característica mediante el parámetro `performance_schema`. Si bien este parámetro es opcional, debe utilizarlo para recopilar métricas de alta resolución (un segundo) por SQL, métricas de sesión activa, eventos de espera y otra información de supervisión detallada de bajo nivel, que recopila Información de rendimiento de Amazon RDS.

**Secciones**
+ [Métricas de Información de rendimiento para instancias de bases de datos](db-instance-performance-insights.md)
+ [CloudWatch métricas para instancias de bases de datos](db-instance-cloudwatch-metrics.md)
+ [Publicar métricas de Performance Insights en CloudWatch](publishing-performance-insights-to-cloudwatch.md)

# Métricas de Información de rendimiento para instancias de bases de datos
<a name="db-instance-performance-insights"></a>

Información de rendimiento supervisa diferentes tipos de métricas, tal y como se describe en las siguientes secciones.

## Carga de base de datos
<a name="dbload"></a>

La carga de la base de datos (`DBLoad`) es una métrica clave en Información de rendimiento que mide el nivel de actividad de la base de datos. Se recopila cada segundo y se publica automáticamente en Amazon CloudWatch. Representa la actividad de la instancia de base de datos en el promedio de sesiones activas (AAS), que es el número de sesiones en las que se ejecutan consultas SQL de forma simultánea. La métrica `DBLoad` es distinta de otras métricas de series temporales porque se puede interpretar mediante cualquiera de estas cinco dimensiones: esperas, SQL, hosts, usuarios y bases de datos. Estas dimensiones son subcategorías de la métrica `DBLoad`. Puede utilizarlas *segmentadas por* categorías para representar diferentes características de la carga de la base de datos. Para obtener una descripción detallada de cómo calculamos la carga de la base de datos, consulte [Carga de la base de datos](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.ActiveSessions.html) en la documentación de Amazon RDS.

La siguiente imagen muestra la herramienta Información de rendimiento.

![\[Carga de la base de datos en la herramienta Información de rendimiento\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/amazon-rds-monitoring-alerting/images/database-load.png)


## Dimensiones
<a name="dimensions"></a>
+ Los *eventos de espera* son condiciones en las que una sesión de base de datos espera a que se complete un recurso u otra operación para continuar con su procesamiento. Si ejecuta una sentencia SQL como, `SELECT * FROM big_table` y si esta tabla es mucho más grande que el conjunto de búferes de InnoDB asignado, lo más probable es que su sesión `wait/io/file/innodb/innodb_data_file` espere a que se produzcan eventos de espera, que se deben a I/O operaciones físicas en el archivo de datos. Los eventos de espera son una dimensión importante para la supervisión de bases de datos, ya que indican posibles cuellos de botella en el rendimiento. Los eventos de espera indican a qué recursos y operaciones dedican más tiempo de espera las instrucciones SQL que ejecuta en las sesiones. Por ejemplo, el evento `wait/synch/mutex/innodb/trx_sys_mutex` se produce cuando hay una gran actividad en la base de datos con un gran número de transacciones. El evento `wait/synch/mutex/innodb/buf_pool_mutex` se produce cuando un subproceso ha adquirido un bloqueo en el grupo de búferes de InnoDB para acceder a una página en la memoria. Para más información sobre todos los eventos de espera de MariaDB y MySQL, consulte [Tablas de resumen de eventos de espera](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-wait-summary-tables.html) en la documentación de MySQL. Para comprender cómo interpretar los nombres de los instrumentos, consulte [Convenciones de nomenclatura de instrumentos de Performance Schema](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-instrument-naming.html) en la documentación de MySQL.
+ *SQL* muestra qué instrucciones SQL contribuyen más a la carga total de la base de datos. La tabla de **dimensiones principales** es interactiva. Se encuentra debajo del gráfico de la **carga de la base de datos** en Información de rendimiento de Amazon RDS. Puede obtener una lista detallada de los eventos de espera asociados a la instrucción SQL. Para ello, haga clic en la barra de la columna **Carga por esperas (AAS)**. Al seleccionar una instrucción SQL de la lista, Información de rendimiento muestra los eventos de espera asociados en el diagrama de la **carga de la base de datos** y el texto de la instrucción SQL en la sección de **texto SQL**. Las estadísticas de SQL se muestran en el lado derecho de la tabla de las **dimensiones principales**.
+ *Hosts* muestra los nombres de host de los clientes conectados. Esta dimensión ayuda a identificar qué hosts de los clientes envían la mayor parte de la carga a la base de datos.
+ *Usuarios* agrupa la carga de la base de datos según los usuarios que iniciaron sesión en la base de datos.
+ *Bases de datos* agrupa la carga de bases de datos según el nombre de la base de datos a la que está conectado el cliente.

## Métricas de contador
<a name="counter-metrics"></a>

Las métricas de contador son métricas acumulativas cuyos valores solo pueden aumentar o restablecerse a cero cuando se reinicia la instancia de base de datos. El valor de una métrica de contador no se puede reducir a su valor anterior. Estas métricas representan un contador único que aumenta de manera monótona.
+ Los [contadores nativos](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights_Counters.html#USER_PerfInsights_Counters.MySQL.Native) son métricas definidas por el motor de base de datos y no por Amazon RDS. Por ejemplo:
  + `SQL.Innodb_rows_inserted` representa el número de filas insertadas en las tablas de InnoDB.
  + `SQL.Select_scan` representa el número de uniones que completaron un análisis completo de la primera tabla.
  + `Cache.Innodb_buffer_pool_reads` representa el número de lecturas lógicas que el motor de InnoDB no pudo recuperar del grupo de búferes y tuvo que leer directamente del disco.
  + `Cache.Innodb_buffer_pool_read_requests` representa el número de solicitudes de lectura lógica.

  Consulte las definiciones de todas las métricas nativas en [Variables de estado de servidor](https://dev.mysql.com/doc/refman/8.0/en/server-status-variables.html) en la documentación de MySQL.
+ Los [contadores no nativos](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights_Counters.html#USER_PerfInsights_Counters.MySQL.NonNative) se definen mediante Amazon RDS. Puede obtener estas métricas mediante una consulta específica o derivarlas mediante dos o varias métricas nativas en los cálculos. Las métricas de contadores no nativos pueden representar latencias, ratios o tasas de aciertos. Por ejemplo:
  + `Cache.innoDB_buffer_pool_hits` representa el número de operaciones de lectura que podría recuperar InnoDB del conjunto de búferes sin utilizar el disco. Se calcula a partir de las métricas del contador nativo de la manera siguiente:

    ```
    db.Cache.Innodb_buffer_pool_read_requests - db.Cache.Innodb_buffer_pool_reads
    ```
  + `IO.innoDB_datafile_writes_to_disk` representa el número de operaciones de escritura del archivo de datos de InnoDB en el disco. Solo captura las operaciones en los archivos de datos, no las operaciones de escritura doble o registro redo de escritura. Se calcula como se indica a continuación:

    ```
    db.IO.Innodb_data_writes - db.IO.Innodb_log_writes - db.IO.Innodb_dblwr_writes
    ```

Puede visualizar las métricas de instancias de bases de datos directamente en el panel de Información de rendimiento. Elija **Administrar métricas**, elija la pestaña **Métricas de la base de datos** y, a continuación, seleccione las métricas que le interesen, como se muestra en la ilustración siguiente.

![\[Selección de métricas de instancias de bases de datos en Información de rendimiento\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/amazon-rds-monitoring-alerting/images/selecting-metrics.png)


Elija el botón **Actualizar gráfico** para mostrar las métricas que seleccionó, tal y como se muestra en la ilustración siguiente.

![\[Visualización de métricas de instancias de bases de datos en Información de rendimiento\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/amazon-rds-monitoring-alerting/images/selecting-metrics-results.png)


## Estadísticas de SQL
<a name="sql-stats"></a>

Información de rendimiento recopila métricas relacionadas con el rendimiento de las consultas SQL por cada segundo que se ejecuta una consulta y por cada llamada SQL. En general, Información de rendimiento recopila [estadísticas de SQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.html) por enunciado y resumen. Sin embargo, para las instancias de bases de datos de MariaDB y MySQL, las estadísticas solo se recopilan por resumen.
+ Las estadísticas de resúmenes son una métrica compuesta de todas las consultas que tienen el mismo patrón pero que, en última instancia, tienen valores literales diferentes. El resumen reemplaza los valores literales específicos por una variable, por ejemplo:

  ```
  SELECT department_id, department_name FROM departments WHERE location_id = ?
  ```
+ Hay métricas que representan estadísticas *por segundo* para cada instrucción SQL resumida. Por ejemplo, `sql_tokenized.stats.count_star_per_sec` representa las llamadas por segundo (es decir, cuántas veces por segundo se ejecutó la instrucción SQL).
+ Información de desempeño también incluye métricas que proporcionan estadísticas *por llamada* para una instrucción SQL. Por ejemplo, `sql_tokenized.stats.sum_timer_wait_per_call` muestra la latencia media de la instrucción SQL por llamada, en milisegundos.

Las estadísticas SQL están disponibles en el panel de Información de rendimiento, en la pestaña **SQL principal** de la tabla **Dimensiones principales**.

![\[Estadísticas de SQL\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/amazon-rds-monitoring-alerting/images/sql-stats.png)


# CloudWatch métricas para instancias de base de datos
<a name="db-instance-cloudwatch-metrics"></a>

Amazon CloudWatch también contiene métricas que Amazon RDS publica automáticamente. Las métricas que residen en el espacio de nombres `AWS/RDS` son *métricas de instancias*, que hacen referencia a la instancia (servicio) de Amazon RDS (es decir, al entorno de base de datos aislado que se ejecuta en la nube) y no a la instancia de base de datos en el sentido estricto del proceso [mysqld](https://dev.mysql.com/doc/refman/8.0/en/mysqld.html). Por lo tanto, la mayoría de esas [métricas predeterminadas](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-metrics.html) pertenecen a la categoría de métricas del sistema operativo, según la definición estricta del término. Entre los ejemplos se incluyen `CPUUtilization`, `WriteIOPS`, `SwapUsage` y otros. Sin embargo, existen algunas métricas de instancias de bases de datos que son aplicables a MariaDB y MySQL:
+ `BinLogDiskUsage`: cantidad de espacio en disco que ocupan los registros binarios.
+ `DatabaseConnections`: número de conexiones de red de cliente a la instancia de base de datos.
+ `ReplicaLag`: cantidad de retraso de una instancia de base de datos de réplica de lectura con respecto a la instancia de base de datos de origen.

# Publicar métricas de Performance Insights en CloudWatch
<a name="publishing-performance-insights-to-cloudwatch"></a>

Amazon RDS Performance Insights monitorea la mayoría de las métricas y dimensiones de las instancias de base de datos y las pone a disposición a través del [panel Performance Insights](https://console.aws.amazon.com/rds/home#performance-insights-v20206:) de la consola AWS de administración. Este panel es ideal para la solución de problemas de bases de datos y el análisis de la causa de origen. Sin embargo, no es posible crear alarmas en Información de rendimiento para las métricas relacionadas con el rendimiento. Si desea crear alarmas basadas en las métricas de Performance Insights, esas métricas deben estar incluidas CloudWatch.

Performance Insights [publica automáticamente las métricas en CloudWatch](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Cloudwatch.html). Puede consultar los mismos datos de Performance Insights, pero tener las métricas integradas CloudWatch facilita la adición de CloudWatch alarmas y la adición de las métricas a los CloudWatch paneles existentes. Los [contadores](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights_Counters.html) son métricas de rendimiento del sistema operativo y de la base de datos, como `os.memory.free` o `db.Locks.Innodb_row_lock_time`. La recopilación de métricas del sistema operativo depende de la configuración de Enhanced Monitoring. Si Enhanced Monitoring está desactivada, las métricas del sistema operativo se recopilan una vez por minuto. Si Enhanced Monitoring está activada, las métricas del sistema operativo se recopilan durante el periodo seleccionado. Para más información, consulte [Activación y desactivación de Enhanced Monitoring](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.Enabling.html#USER_Monitoring.OS.Enabling.Procedure) en las preguntas frecuentes de Amazon RDS.

Performance Insights le permite [exportar el panel de métricas preconfigurado o personalizado](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PI_metrics_export_CW.html) de su instancia de base de datos a CloudWatch. Puede exportar el panel de métricas como un panel nuevo o añadirlo a un CloudWatch panel existente. Al exportar el panel de métricas de Performance Insights al CloudWatch panel, obtendrá una visión unificada y holística del estado del sistema, ya que le proporcionará una visión general de las métricas asociadas a varios recursos del sistema, como las instancias EC2, los recursos de Amazon Elastic File System (Amazon EFS) y los recursos de Elastic Load Balancing (ELB), junto con las métricas de las instancias de base de datos.

Puede usar la función matemática CloudWatch `DB_PERF_INSIGHTS` métrica para consultar y crear alarmas y gráficos basados en las métricas de Performance Insights de CloudWatch. Para crear una alarma en una métrica de Performance Insights, siga las instrucciones de la [CloudWatch documentación](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_alarm_database_performance_insights.html). Por ejemplo, si quiere activar una alarma cuando el total de transacciones activas en la instancia de bases de datos alcance un umbral específico, siga las instrucciones de esa página, utilice la siguiente expresión matemática `DB_PERF_INSIGHTS` y, a continuación, elija **Aplicar**:

```
DB_PERF_INSIGHTS('RDS', 'db-BQ2TPYY7HG2GDFC7APMB3BVB3M', 'db.Transactions.active_transactions.avg')
```

donde `db-BQ2TPYY7HG2GDFC7APMB3BVB3M` es el id. del recurso de la instancia de bases de datos. Especifique el periodo (por ejemplo, 1 minuto) y las condiciones (por ejemplo, más de 1000). Para finalizar la creación de la alarma, configure las acciones de la alarma, agregue un nombre y una descripción, y obtenga una vista previa de la alarma y créela.