¿Cómo soluciono problemas de latencia de destino alta en una tarea de AWS DMS?

5 minutos de lectura
0

Estoy ejecutando una tarea de carga completa y captura de datos de cambio (CDC) de AWS Database Migration Service (AWS DMS). La latencia de origen no es alta, pero la latencia de destino es alta o está aumentando.

Breve descripción

Puede utilizar las métricas de Amazon CloudWatch para supervisar las métricas de la tarea de replicación. Puede supervisar CDCLatencySource y CDCLatencyTarget para identificar la latencia de replicación en la fase de replicación continua. La métrica CDCLatencySource es la latencia entre el origen y la instancia de replicación. La métrica CDCLatencyTarget es la latencia entre la instancia de replicación y el destino. Para obtener más información, consulte Replication task metrics.

Un valor alto de CDCLatencySource significa que el proceso de captura de cambios del origen se retrasa. Un valor alto de CDCLatencyTarget significa que el proceso de aplicación de los eventos de cambio al destino se retrasa. Si tanto el valor de CDCLatencySource como el de CDCLatencyTarget son altos, solucione primero los problemas de CDCLatencySource, ya que la latencia de destino siempre es igual o mayor que la latencia de origen. Lo más probable es que el alto nivel de latencia de CDCLatencyTarget se deba a un retraso en la captura de los eventos de cambio del origen. Si el valor de CDCLatencySource no es alto, pero el de CDCLatencyTarget sí, la latencia podría deberse a lo siguiente:

  • No hay claves principales ni índices en el destino.
  • Hay cuellos de botella en los recursos en el destino.
  • Hay cuellos de botella en los recursos de la instancia de replicación.
  • Hay un problema de red entre la instancia de replicación y el destino.

Para resolver estos problemas, consulte la sección Prácticas recomendadas y solución de problemas de la siguiente Solución.

Solución

No hay claves principales ni índices en el destino

De forma predeterminada, AWS DMS utiliza instrucciones del lenguaje de manipulación de datos (DML) para escribir los cambios en el destino, como INSERT, UPDATE o DELETE. Si los índices requeridos no están en su lugar, los cambios como las actualizaciones y las eliminaciones pueden dar como resultado un análisis de tabla completo. Los análisis de tabla completos pueden provocar problemas de rendimiento y latencia en el destino. Compruebe los esquemas de la base de datos de destino, especialmente si creó el esquema de destino manualmente. Utilice los mecanismos de la base de datos de destino para identificar las consultas lentas, como el registro de consultas lentas para MySQL, pg_stat_activity para Amazon Relational Database Service (Amazon RDS) para PostgreSQL o un plan de consultas. Si su destino es Amazon Redshift, compruebe también el estilo de distribución de su tabla. Todos los estilos de distribución pueden provocar una latencia de destino porque las tareas de inserción o actualización de los datos en las tablas tardan más.

Cuellos de botella en los recursos en el destino

Si su destino no tiene recursos suficientes, no podrá aceptar cambios a la velocidad con la que AWS DMS los envía. Esto puede provocar cuellos de botella en los recursos del destino y la latencia de destino. Esto también ocurre si otros procesos consumen recursos en el destino. Si el destino está alojado en AWS, compruebe las estadísticas de recursos en las métricas de CloudWatch.

Cuellos de botella en los recursos de la instancia de replicación

Elija una instancia de replicación que tenga recursos suficientes para gestionar la migración: CPU, memoria, red o IOPS.

Utilice las métricas de CloudWatch para supervisar los recursos de la instancia de replicación.

Problema de red entre la instancia de replicación y el destino

Los problemas de latencia de la red también pueden provocar problemas de latencia, especialmente si el destino es una base de datos local o si utiliza AWS DMS para la replicación entre regiones de AWS.

Prácticas recomendadas y solución de problemas

Si su destino es Amazon RDS, siga las prácticas recomendadas para mejorar el rendimiento de una migración de AWS DMS. Amazon RDS cuenta con un mecanismo de copia de seguridad automatizado que se inicia en el periodo de copia de seguridad. Además, realiza copias de seguridad de los datos trasladados. Si se estaba capturando una instantánea de la instancia de la base de datos de RDS de destino, AWS DMS puede tener problemas para aplicar los cambios al destino. Como resultado, la latencia de destino aumenta hasta que se complete la captura de la instantánea. Si su destino es Amazon Elastic Compute Cloud (Amazon EC2) o una base de datos local, compruebe el mecanismo de copia de seguridad de la base de datos de destino.

Algunas configuraciones de tareas pueden hacer que los cambios se escriban lentamente en el destino. Si ejecuta una replicación continua desde un origen donde la velocidad de cambio es alta, utilice BatchApplyEnabled. Para obtener más información, consulte la sección BatchApplyEnabled de Debugging your AWS DMS migrations: What to do when things go wrong? (Part 3)

Para establecer BatchApplyEnabled en True, ejecute el comando modify-replication-task mediante la Interfaz de la línea de comandos de AWS (AWS CLI):

aws dms modify-replication-task --replication-task-arn arn:aws:dms:ap-northeast-1:123456789012:task:ABCDEFGHIJKLMNOPQRSTUVWXYZ --replication-task-settings "{\"TargetMetadata\":{\"BatchApplyEnabled\":true}}"

Nota: Si recibe errores al ejecutar comandos de la AWS CLI, consulte Errores de solución de problemas de la AWS CLI. Además, asegúrese de utilizar la versión más reciente.

Información relacionada

Change processing tuning settings

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 7 meses