4. Throughput máximo sob demanda excedido - Amazon DynamoDB

4. Throughput máximo sob demanda excedido

Ao configurar uma tabela sob demanda ou um GSI, é possível, opcionalmente, definir um limite máximo de throughput (MaxReadRequestUnits e MaxWriteRequestUnits) em nível de tabela ou de índice para evitar custos excessivos ou impedir que os sistemas subsequentes fiquem sobrecarregados. Para ter mais informações sobre throughput máximo, consulte Throughput máximo do DynamoDB para tabelas sob demanda.

Quando o consumo de leitura ou gravação excede esses limites autoimpostos, as solicitações adicionais que excedem o limite recebem respostas rápidas de controle de utilização. O DynamoDB exibe exceções com um tipo de motivo MaxOnDemandThroughputExceeded controle de utilização, indicando qual recurso atingiu o respectivo limite de throughput.

Controle de utilização de throughput máximo sob demanda excedido

Esta seção oferece orientações sobre resolução para cenários de controle de utilização de throughput máximo sob demanda excedido. Antes de usar este guia, identifique os motivos específicos de controle de utilização do tratamento de exceções da sua aplicação e determine o nome do recurso da Amazon (ARN) do recurso afetado. Para ter informações sobre como recuperar os motivos de controle de utilização e identificar os recursos com controle de utilização, consulte Estrutura de diagnóstico de controle de utilização do DynamoDB.

Antes de se aprofundar em cenários específicos de controle de utilização, considere se uma ação é realmente necessária:

  • Avalie suas configurações de throughput máximo: esses limites foram intencionalmente configurados para controlar os custos ou proteger sistemas subsequentes. Se você está recebendo eventos de controle de utilização MaxOnDemandThroughputExceeded, seus limites estão funcionando conforme planejado. Considere se o aumento desses limites está alinhado com suas metas originais de controle de custos ou de proteção do sistema.

  • Avalie o impacto da aplicação: determine se o controle de utilização está realmente causando problemas para suas aplicações ou usuários. Se suas aplicações lidam com novas tentativas de forma eficaz e atendem aos requisitos de desempenho apesar do controle de utilização ocasional, manter seus limites atuais pode ser a escolha apropriada.

  • Analise os padrões de tráfego: analise se o controle de utilização representa um padrão de tráfego esperado ou um pico incomum. Para padrões de tráfego previsíveis e recorrentes que excedem consistentemente seus limites, talvez seja necessário ajustar as configurações throughput máximo. Para picos temporários, implementar melhores estratégias de distribuição de solicitações pode ser mais apropriado do que aumentar os limites.

Se, depois de considerar, você determinar que suas configurações de throughput máximo precisam ser ajustadas, consulte os seguintes cenários específicos de controle de utilização para ver as opções de correção específicas:

TableReadMaxOnDemandThroughputExceeded

Quando isso ocorre

Sua tabela sob demanda excedeu a capacidade de throughput máximo de leitura configurada. É possível monitorar as métricas do CloudWatch em Diagnóstico e monitoramento comuns para analisar o evento de controle de utilização.

Opções de correção

Considere estas etapas para lidar com eventos de controle de utilização:

  • Aumente o limite máximo de throughput: use o console do DynamoDB, a AWS CLI ou a API UpdateTable do DynamoDB para aumentar o valor de MaxReadRequestUnits para a tabela afetada e, seguida, monitore e faça ajustes. Isso permite que a tabela lide com um throughput de leitura mais alto antes que ocorra controle de utilização.

  • Remova o limite máximo: defina MaxReadRequestUnits como -1 para remover o teto, permitindo o ajuste de escala com base na demanda até atingir as cotas de throughput em nível de conta. Isso remove seu limite personalizado, mas ainda mantém as proteções em nível de conta da AWS. No entanto, é importante monitorar os gastos rigorosamente depois de remover esse limite, pois daí em diante sua tabela poderá consumir uma capacidade significativamente maior antes de atingir as cotas em nível de conta.

TableWriteMaxOnDemandThroughputExceeded

Quando isso ocorre

Sua tabela sob demanda excedeu a capacidade de throughput máximo de gravação configurada. É possível monitorar as métricas do CloudWatch em Diagnóstico e monitoramento comuns para analisar o evento de controle de utilização.

Opções de correção

Considere estas etapas para lidar com eventos de controle de utilização:

  • Aumente o limite máximo de throughput: use o console do DynamoDB, a AWS CLI ou a API UpdateTable do DynamoDB para aumentar o valor de MaxWriteRequestUnits para a tabela afetada e, seguida, monitore e faça ajustes.

  • Remova o limite máximo: defina MaxWriteRequestUnits como -1 para remover o teto, permitindo o ajuste de escala com base na demanda até atingir as cotas de throughput em nível de conta. Isso remove seu limite personalizado, mas ainda mantém as proteções em nível de conta da AWS. No entanto, é importante monitorar os gastos rigorosamente depois de remover esse limite, pois daí em diante sua tabela poderá consumir uma capacidade significativamente maior antes de atingir as cotas em nível de conta.

IndexReadMaxOnDemandThroughputExceeded

Quando isso ocorre

As solicitações de leitura a um GSI no modo sob demanda excederam a capacidade de throughput máximo de leitura configurada para o GSI. É possível monitorar as métricas do CloudWatch em Diagnóstico e monitoramento comuns para analisar o evento de controle de utilização.

Opções de correção

Considere estas etapas para lidar com eventos de controle de utilização:

  • Aumente o limite máximo de throughput do GSI: use o console do DynamoDB, a AWS CLI ou a API UpdateTable do DynamoDB para aumentar o valor de MaxReadRequestUnits para o GSI afetado e, em seguida, monitore e faça ajustes.

  • Remova o limite máximo do GSI: defina MaxReadRequestUnits como -1 para o GSI a fim de remover o teto, permitindo o ajuste de escala com base na demanda até atingir as cotas de throughput em nível de conta. Isso remove seu limite personalizado, mas ainda mantém as proteções em nível de conta da AWS. No entanto, é importante monitorar os gastos rigorosamente depois de remover esse limite.

IndexWriteMaxOnDemandThroughputExceeded

Quando isso ocorre

As atualizações dos itens na tabela base acionam gravações em um GSI no modo sob demanda que excedem a capacidade de throughput máximo de gravação configurada do GSI, causando controle de utilização de contrapressão. É possível monitorar as métricas do CloudWatch em Diagnóstico e monitoramento comuns para analisar o evento de controle de utilização.

Opções de correção

Considere estas etapas para lidar com eventos de controle de utilização:

  • Aumente o limite máximo de throughput do GSI: use o console do DynamoDB, a AWS CLI ou a API UpdateTable do DynamoDB para aumentar o valor de MaxWriteRequestUnits para o GSI afetado e, em seguida, monitore e faça ajustes.

  • Remova o limite máximo do GSI: defina MaxWriteRequestUnits como -1 para o GSI a fim de remover o teto, permitindo o ajuste de escala com base na demanda até atingir as cotas de throughput em nível de conta. Isso remove seu limite personalizado, mas ainda mantém as proteções em nível de conta da AWS. No entanto, é importante monitorar os gastos rigorosamente depois de remover esse limite.

Diagnóstico e monitoramento comuns

Ao solucionar problemas de controle de utilização de throughput máximo sob demanda excedido, várias métricas do CloudWatch podem ajudar a identificar a causa raiz e os padrões de ajuste de escala.

Métricas essenciais do CloudWatch

Monitore estas métricas essenciais para diagnosticar o controle de utilização de throughput máximo sob demanda excedido:

Abordagem de análise

Siga estas etapas para confirmar o diagnóstico de throughput máximo sob demanda excedido:

  1. Compare a capacidade consumida com os limites máximos de capacidade. Verifique se o consumo se aproxima ou excede consistentemente os limites máximos.

  2. Analise a frequência e o momento dos eventos de controle de utilização para identificar padrões. Procure aumentos repentinos na capacidade consumida que coincidam com o respectivo evento de controle de utilização.

  3. Use o CloudWatch Contributor Insights para identificar quais itens ou chaves de partição consomem mais capacidade.