Como faço para solucionar a alta latência do destino em uma tarefa do AWS DMS?

5 minuto de leitura
0

Estou executando uma tarefa de carga máxima e captura de dados de alteração (CDC) do AWS Database Migration Service (AWS DMS). A latência de origem não é alta, mas a latência de destino é alta ou está aumentando.

Breve descrição

Use as métricas do Amazon CloudWatch para monitorar as métricas da sua tarefa de replicação. Para identificar a latência da replicação na fase de replicação contínua, monitore CDCLatencySource e CDCLatencyTarget. A métrica CDCLatencySource é a latência entre a origem e a instância de replicação. A métrica CDCLatencyTarget é a latência entre a instância de replicação e o destino. Para obter mais informações, consulte Métricas de tarefas de replicação.

Uma CDCLatencySource alta indica que o processo para capturar alterações da origem está atrasado. Uma CDCLatencyTarget alta indica que o processo para aplicar eventos de alteração no destino está atrasado. Se tanto CDCLatencySource quanto CDCLatencyTarget forem altas, solucione os problemas de CDCLatencySource primeiro, pois a latência do destino sempre é igual ou maior que a latência da origem. Uma CDCLatencyTarget alta é mais provável porque há um atraso na captura dos eventos de alteração da fonte. Se CDCLatencySource não está alta, mas CDCLatencyTarget está, os seguintes problemas podem causar a latência:

  • Não há chaves primárias ou índices no destino.
  • Existem gargalos de recursos no destino.
  • Existem gargalos de recursos na instância de replicação.
  • Há um problema de rede entre a instância de replicação e o destino.

Para resolver esses problemas, consulte a seção Práticas recomendadas e solução de problemas na seção Resolução a seguir.

Resolução

Não há chaves primárias ou índices no destino

Por padrão, o AWS DMS usa instruções de linguagem de manipulação de dados (DML) para gravar alterações no destino, como INSERT, UPDATE ou DELETE. Se os índices necessários não estiverem no lugar, alterações de atualização e exclusão podem resultar em verificações completas da tabela. As varreduras completas da tabela podem causar problemas de desempenho no destino e resultar em sua latência. Verifique os esquemas do banco de dados de destino, especialmente se você criou manualmente o esquema de destino. Use mecanismos de banco de dados de destino para identificar consultas lentas, como o log de consulta lentas para MySQL, pg_stat_activity para Amazon Relational Database Service (Amazon RDS) para PostgreSQL ou um plano de consulta. Se seu destino for o Amazon Redshift, verifique também o estilo de distribuição da sua tabela. Como os estilos de distribuição demoram mais para inserir ou atualizar dados em tabelas, todos eles podem causar latência no destino.

Gargalos de recursos no destino

Se o seu destino não tem recursos suficientes, ele não pode aceitar alterações no mesmo ritmo em que o AWS DMS as envia. Isso pode causar gargalos de recursos no destino e latência do destino. Isso também acontece se outros processos consomem recursos no destino. Se a AWS hospedar o destino, verifique as estatísticas dos recursos nas métricas do CloudWatch.

Gargalos de recursos na instância de replicação

Escolha uma instância de replicação com recursos suficientes para lidar com sua migração: CPU, memória, rede ou IOPs.

Use as métricas do CloudWatch para monitorar seus recursos de instância de replicação.

Problema de rede entre a instância de replicação e o destino

A largura de banda da rede também pode causar problemas de latência, especialmente quando seu destino é um banco de dados on-premises ou se você usa o AWS DMS para replicação entre regiões da AWS.

Práticas recomendadas e solução de problemas

Se sua meta for o Amazon RDS, siga as práticas recomendadas para melhorar o desempenho de uma migração do AWS DMS. O Amazon RDS tem um mecanismo de backup automatizado que é iniciado na janela de backup, e o Amazon RDS faz backup dos dados transferidos. Se um snapshot da instância de banco de dados do RDS de destino estiver no processo de captura, o AWS DMS poderá ter problemas quando o serviço aplicar alterações ao destino. Como resultado, a latência do destino aumenta até que a captura do snapshot seja concluída. Se o seu destino é o Amazon Elastic Compute Cloud (Amazon EC2) ou um banco de dados on-premises, verifique o mecanismo de backup do banco de dados de destino.

Algumas configurações de tarefas fazem com que as alterações sejam gravadas lentamente no destino. Se você executa a replicação contínua de uma origem em que a taxa de alterações é alta, use BatchAplyEnabled. Para obter mais informações, consulte a seção BatchApplyEnabled de Debugging your AWS DMS migrations: What to do when things go wrong? Parte 3

Para definir BatchApplyEnabled como True, use a AWS Command Line Interface (AWS CLI) para executar o comandomodify-replication-task:

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

Observação: se receber erros ao executar comandos da AWS CLI, consulte Solucionar erros da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.

Informações relacionadas

Alterar configurações de ajuste de processamento

AWS OFICIAL
AWS OFICIALAtualizada há 7 meses