DynamoDB on-demand throughput exceeded

TL;DR — Sim, tabelas on-demand ainda podem fazer throttle. As três causas: você definiu um throughput máximo (MaxReadRequestUnits/MaxWriteRequestUnits) e o ultrapassou; você dirigiu mais que o dobro do seu pico de tráfego anterior em 30 minutos; ou você atingiu uma quota no nível da tabela (padrão de 40.000 unidades de requisição de leitura e 40.000 de escrita por tabela). Eleve ou remova o máximo, aumente o tráfego gradualmente, e mantenha retries de backoff exponencial.

O que significa

ThrottlingException: Rate of requests exceeds the allowed throughput.

O modo on-demand escala para acomodar o tráfego, mas não instantaneamente e não sem tetos. Novas tabelas on-demand sustentam até 4.000 escritas e 12.000 leituras por segundo imediatamente, e o on-demand acomoda instantaneamente até o dobro do seu pico de tráfego anterior. Exceder um máximo configurado, ultrapassar esse dobramento em 30 minutos, ou cruzar uma quota, todos aparecem como throttling — ThrottlingException é HTTP 400 e retentável, e o erro carrega campos ThrottlingReason (por exemplo, IndexWriteMaxOnDemandThroughputExceeded) nomeando o recurso e o limite que foi atingido.

Por que isso acontece

  • Um throughput máximo configurado — você definiu MaxReadRequestUnits/MaxWriteRequestUnits e a demanda o cruzou; o DynamoDB retorna um ThrottlingException (é um teto de controle de custo que você escolheu, aplicado com melhor esforço).
  • Mais rápido que 2x o pico anterior — o on-demand acomoda instantaneamente até o dobro do seu pico anterior, mas o throttling pode ocorrer se você exceder o dobro desse pico em 30 minutos.
  • Rampa de cold-start — uma tabela totalmente nova (ou uma carga em massa logo após a criação) excede a linha de base inicial de 4.000 escritas e 12.000 leituras por segundo.
  • Quota no nível da tabela — o teto padrão por tabela de 40.000 unidades de requisição de leitura e 40.000 de escrita; violações de quota no nível da conta aparecem como RequestLimitExceeded.
  • Uma partição quente — tráfego concentrado em uma chave de partição, que tem seu próprio limite por partição independentemente do modo da tabela.

Como corrigir

  1. Eleve o máximo configurado — aumente MaxReadRequestUnits/MaxWriteRequestUnits via UpdateTable, ou defina o valor como -1 para remover seu teto customizado (service quotas ainda se aplicam).
  2. Pré-aqueça antes de um pico conhecido — use a configuração de warm throughput do DynamoDB, ou espace o crescimento do tráfego por pelo menos 30 minutos para que o dobramento do on-demand fique à frente da demanda em vez de perseguir uma mudança em degrau.
  3. Mantenha retries de backoff exponencial — o SDK tenta novamente throttles por padrão; use o modo de retry adaptativo para cargas de rajada.
  4. Regule importações em massa ou use o recurso de importação do S3 em vez de martelar uma tabela nova.
  5. Espalhe o espaço de chaves para que nenhuma chave de partição única fique quente — uma partição quente faz throttle mesmo quando a tabela tem folga.
  6. Solicite um aumento de quota se você legitimamente precisa de mais de 40.000 unidades de requisição de leitura/escrita em uma tabela.

Perseguindo qual chave está absorvendo as requisições? Navegue e filtre a tabela no app desktop DynoTable para descobrir a chave de partição quente antes que ela limite seu throughput.

FAQ

Uma tabela on-demand do DynamoDB pode sofrer throttle? Sim. Tabelas on-demand fazem throttle quando você ultrapassa um throughput máximo configurado, dirige mais que o dobro do seu pico de tráfego anterior antes de o DynamoDB terminar de escalar, cruza a quota padrão por tabela de 40.000 unidades de requisição de leitura e 40.000 de escrita, ou concentra tráfego em uma chave de partição quente.

Como elevo o limite de throughput on-demand? Aumente MaxReadRequestUnits/MaxWriteRequestUnits via UpdateTable, ou defina o valor como -1 para remover seu teto customizado — quotas de conta ainda se aplicam. Se você precisa de mais que as 40.000 unidades de requisição padrão por tabela, solicite um aumento de quota.

Erros relacionados

Referências

Verificado pela última vez em 2026-07-13 contra a documentação oficial da AWS vinculada acima.

Trabalhe com o DynamoDB sem o Console

Um cliente desktop rápido para DynamoDB que roda o SQL de verdade que o DynamoDB não consegue — JOINs, GROUP BY, agregações — com edição visual e um agente de IA com suas próprias chaves do Bedrock.

Teste grátis de 30 dias, sem cartão de crédito — depois o plano Grátis sem limite de tempo.