

# 4. Throughput máximo sob demanda excedido
<a name="throttling-ondemand-capacity-exceeded-mitigation"></a>

Ao configurar uma tabela [sob demanda](on-demand-capacity-mode.md) ou um GSI, é possível definir um limite máximo de throughput ([https://docs.aws.amazon.com//amazondynamodb/latest/APIReference/API_OnDemandThroughput.html#DDB-Type-OnDemandThroughput-MaxReadRequestUnits](https://docs.aws.amazon.com//amazondynamodb/latest/APIReference/API_OnDemandThroughput.html#DDB-Type-OnDemandThroughput-MaxReadRequestUnits) e [https://docs.aws.amazon.com//amazondynamodb/latest/APIReference/API_OnDemandThroughput.html#DDB-Type-OnDemandThroughput-MaxWriteRequestUnits](https://docs.aws.amazon.com//amazondynamodb/latest/APIReference/API_OnDemandThroughput.html#DDB-Type-OnDemandThroughput-MaxWriteRequestUnits)) em nível de tabela ou de índice para evitar custos excessivos ou impedir que os sistemas downstream fiquem sobrecarregados. Para ter mais informações sobre throughput máximo, consulte [Throughput máximo do DynamoDB para tabelas sob demanda](on-demand-capacity-mode-max-throughput.md).

 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
<a name="throttling-ondemand-maximum-exceeded"></a>

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](throttling-diagnosing-workflow.md#throttling-diagnosing).

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](#throttling-diagnostic-table-read-max-ondemand) 
+ [TableWriteMaxOnDemandThroughputExceeded](#throttling-diagnostic-table-write-max-ondemand)
+ [IndexReadMaxOnDemandThroughputExceeded](#throttling-diagnostic-index-read-max-ondemand) 
+ [IndexWriteMaxOnDemandThroughputExceeded](#throttling-diagnostic-index-write-max-ondemand) 

### TableReadMaxOnDemandThroughputExceeded
<a name="throttling-diagnostic-table-read-max-ondemand"></a>

**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](#ondemand-capacity-exceeded-diagnosis-monitoring) 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](https://console.aws.amazon.com/dynamodb), a [AWS CLI](/amazondynamodb/latest/developerguide/AccessingDynamoDB.html#Tools.CLI) ou a API `[UpdateTable](https://docs.aws.amazon.com//amazondynamodb/latest/APIReference/API_UpdateTable.html)` do DynamoDB para aumentar o valor de [https://docs.aws.amazon.com//amazondynamodb/latest/APIReference/API_OnDemandThroughput.html#DDB-Type-OnDemandThroughput-MaxReadRequestUnits](https://docs.aws.amazon.com//amazondynamodb/latest/APIReference/API_OnDemandThroughput.html#DDB-Type-OnDemandThroughput-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
<a name="throttling-diagnostic-table-write-max-ondemand"></a>

**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](#ondemand-capacity-exceeded-diagnosis-monitoring) 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](https://console.aws.amazon.com/dynamodb), a [AWS CLI](/amazondynamodb/latest/developerguide/AccessingDynamoDB.html#Tools.CLI) ou a API `[UpdateTable](https://docs.aws.amazon.com//amazondynamodb/latest/APIReference/API_UpdateTable.html)` do DynamoDB para aumentar o valor de [https://docs.aws.amazon.com//amazondynamodb/latest/APIReference/API_OnDemandThroughput.html#DDB-Type-OnDemandThroughput-MaxWriteRequestUnits](https://docs.aws.amazon.com//amazondynamodb/latest/APIReference/API_OnDemandThroughput.html#DDB-Type-OnDemandThroughput-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
<a name="throttling-diagnostic-index-read-max-ondemand"></a>

**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](#ondemand-capacity-exceeded-diagnosis-monitoring) 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](https://console.aws.amazon.com/dynamodb), a [AWS CLI](/amazondynamodb/latest/developerguide/AccessingDynamoDB.html#Tools.CLI) ou a API `[UpdateTable](https://docs.aws.amazon.com//amazondynamodb/latest/APIReference/API_UpdateTable.html)` do DynamoDB para aumentar o valor de [https://docs.aws.amazon.com//amazondynamodb/latest/APIReference/API_OnDemandThroughput.html#DDB-Type-OnDemandThroughput-MaxReadRequestUnits](https://docs.aws.amazon.com//amazondynamodb/latest/APIReference/API_OnDemandThroughput.html#DDB-Type-OnDemandThroughput-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
<a name="throttling-diagnostic-index-write-max-ondemand"></a>

**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](gsi-throttling.md). É possível monitorar as métricas do CloudWatch em [Diagnóstico e monitoramento comuns](#ondemand-capacity-exceeded-diagnosis-monitoring) 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](https://console.aws.amazon.com/dynamodb), a [AWS CLI](/amazondynamodb/latest/developerguide/AccessingDynamoDB.html#Tools.CLI) ou a API `[UpdateTable](https://docs.aws.amazon.com//amazondynamodb/latest/APIReference/API_UpdateTable.html)` do DynamoDB para aumentar o valor de [https://docs.aws.amazon.com//amazondynamodb/latest/APIReference/API_OnDemandThroughput.html#DDB-Type-OnDemandThroughput-MaxWriteRequestUnits](https://docs.aws.amazon.com//amazondynamodb/latest/APIReference/API_OnDemandThroughput.html#DDB-Type-OnDemandThroughput-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
<a name="ondemand-capacity-exceeded-diagnosis-monitoring"></a>

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:** [https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/metrics-dimensions.html#ReadMaxOnDemandThroughputThrottleEvents](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/metrics-dimensions.html#ReadMaxOnDemandThroughputThrottleEvents) e [https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/metrics-dimensions.html#WriteMaxOnDemandThroughputThrottleEvents](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/metrics-dimensions.html#WriteMaxOnDemandThroughputThrottleEvents) rastreiam quando as solicitações sofrem controle de utilização por excederem os limites máximos. [https://docs.aws.amazon.com//amazondynamodb/latest/developerguide/metrics-dimensions.html#ReadThrottleEvents](https://docs.aws.amazon.com//amazondynamodb/latest/developerguide/metrics-dimensions.html#ReadThrottleEvents) e [https://docs.aws.amazon.com//amazondynamodb/latest/developerguide/metrics-dimensions.html#WriteThrottleEvents](https://docs.aws.amazon.com//amazondynamodb/latest/developerguide/metrics-dimensions.html#WriteThrottleEvents) monitoram 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:** [https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/metrics-dimensions.html#OnDemandMaxReadRequestUnits](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/metrics-dimensions.html#OnDemandMaxReadRequestUnits) e [https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/metrics-dimensions.html#OnDemandMaxWriteRequestUnits](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/metrics-dimensions.html#OnDemandMaxWriteRequestUnits) mostram os limites de capacidade máxima atuais.
+ **Consumo real de capacidade:** [https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/metrics-dimensions.html#ConsumedReadCapacityUnits](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/metrics-dimensions.html#ConsumedReadCapacityUnits) e [https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/metrics-dimensions.html#ConsumedWriteCapacityUnits](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/metrics-dimensions.html#ConsumedWriteCapacityUnits) mostram 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:

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.

1. 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.

1. Use o [CloudWatch Contributor Insights](contributorinsights_HowItWorks.md) para identificar quais itens ou chaves de partição consomem mais capacidade.