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 UpdateTabledo DynamoDB para aumentar o valor deMaxReadRequestUnitspara 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
MaxReadRequestUnitscomo-1para 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 UpdateTabledo DynamoDB para aumentar o valor deMaxWriteRequestUnitspara a tabela afetada e, seguida, monitore e faça ajustes. -
Remova o limite máximo: defina
MaxWriteRequestUnitscomo-1para 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 UpdateTabledo DynamoDB para aumentar o valor deMaxReadRequestUnitspara o GSI afetado e, em seguida, monitore e faça ajustes. -
Remova o limite máximo do GSI: defina
MaxReadRequestUnitscomo-1para 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 UpdateTabledo DynamoDB para aumentar o valor deMaxWriteRequestUnitspara o GSI afetado e, em seguida, monitore e faça ajustes. -
Remova o limite máximo do GSI: defina
MaxWriteRequestUnitscomo-1para 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:
-
Eventos de controle de utilização de throughput máximo:
ReadMaxOnDemandThroughputThrottleEventseWriteMaxOnDemandThroughputThrottleEventsrastreiam quando as solicitações sofrem controle de utilização por excederem os limites máximos.ReadThrottleEventseWriteThrottleEventsmonitoram quando qualquer solicitação de leitura ou gravação excede a capacidade provisionada. -
Throughput máximo atual configurado para uma tabela ou um índice secundário global:
OnDemandMaxReadRequestUnitseOnDemandMaxWriteRequestUnitsmostram os limites de capacidade máxima atuais. -
Consumo real de capacidade:
ConsumedReadCapacityUnitseConsumedWriteCapacityUnitsmostram os padrões reais de uso.
Abordagem de análise
Siga estas etapas para confirmar o diagnóstico de throughput máximo sob demanda excedido:
-
Compare a capacidade consumida com os limites máximos de capacidade. Verifique se o consumo se aproxima ou excede consistentemente os limites máximos.
-
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.
-
Use o CloudWatch Contributor Insights para identificar quais itens ou chaves de partição consomem mais capacidade.