DynamoDB RequestLimitExceeded
In breve — Hai superato una quota di request-rate a livello di account/tabella, non la capacità con provisioning propria di una tabella. Le tabelle on-demand hanno come default 40.000 unità di richiesta di lettura e 40.000 unità di richiesta di scrittura al secondo. Mantieni i retry con backoff dell'SDK, alza la quota in Service Quotas se il traffico è reale, e distribuisci il carico così una singola tabella/partizione non sia il collo di bottiglia.
Cosa significa
RequestLimitExceeded: Throughput exceeds the current throughput limit for your
account. To request a limit increase, contact AWS Support.RequestLimitExceeded è una delle tre eccezioni di throttling che DynamoDB restituisce sul data plane (insieme a ProvisionedThroughputExceededException e ThrottlingException). Segnala che hai raggiunto una service quota a livello di account — come la quota di throughput per-tabella per le tabelle on-demand — invece di un tetto RCU/WCU con provisioning per-tabella. Restituisce HTTP 400 ed è ripetibile — gli SDK fanno backoff e riprovano automaticamente. L'errore porta campi ThrottlingReason (es. TableWriteAccountLimitExceeded o IndexReadAccountLimitExceeded) più l'ARN della risorsa interessata.
Perché succede
- Tetto predefinito delle tabelle on-demand — ogni tabella on-demand (e ciascuno dei suoi GSI) ha una quota predefinita regolabile di 40.000 unità di richiesta di lettura e 40.000 unità di richiesta di scrittura al secondo. Il consumo sostenuto oltre quello fa throttling con
ThrottlingReasona livello di account finché la quota non viene alzata. - La tabella non può scalare ulteriormente sotto la quota dell'account — secondo la documentazione AWS, il tasso di richieste on-demand supera il throughput consentito dell'account "e la tabella non può essere scalata ulteriormente". Queste quote sono salvaguardie di riserva, e possono essere aumentate.
- Una tabella appena resa on-demand in riscaldamento — una tabella on-demand nuova (o una appena passata a on-demand) serve istantaneamente fino al doppio del suo picco precedente; un picco molto più grande di quello può fare throttling prima che scali.
- Una singola tabella hot che assorbe un picco di traffico molto superiore al suo picco recente.
Come risolverlo
- Mantieni attivi i retry con backoff esponenziale — il default dell'SDK gestisce i picchi transitori. Usa la modalità adaptive retry per carichi a raffica. Non disabilitare i retry.
- Alza la quota — richiedi un aumento del throughput on-demand per-tabella (o della quota di conteggio/throughput delle tabelle dell'account) in Service Quotas se il traffico è legittimo e sostenuto.
- Pre-riscalda prima di un picco noto — aumenta il traffico gradualmente invece di saltare direttamente al picco, così lo scaling on-demand resti avanti alla domanda.
- Distribuisci il carico — fai sharding delle chiavi hot e distribuisci le scritture così una tabella/partizione non porti l'intero picco (pattern di partizione hot).
- Metti in cache le letture hot (DAX o una cache applicativa) per scaricare la pressione di lettura sotto il tetto.
FAQ
In cosa differisce RequestLimitExceeded da ProvisionedThroughputExceededException? ProvisionedThroughputExceededException significa che una tabella a capacità con provisioning ha superato le proprie RCU/WCU configurate. RequestLimitExceeded significa che hai raggiunto una quota di request-rate a livello di account o tabella — più spesso il default on-demand di 40.000 unità di richiesta di lettura e 40.000 di scrittura al secondo — indipendentemente dall'impostazione per-tabella di una singola tabella.
RequestLimitExceeded è ripetibile? Sì. È un errore di throttling e gli AWS SDK lo riprovano automaticamente con backoff esponenziale. Le occorrenze persistenti significano che hai bisogno di un aumento di quota o di distribuire il carico, non di più retry.
Errori correlati
- ProvisionedThroughputExceededException — capacità con provisioning per-tabella superata.
- ThrottlingException — rate limiting del control-plane / generale.
- Impara: On-demand vs provisioned · Hot partitions
Riferimenti
- Error handling with DynamoDB — Amazon DynamoDB Developer Guide
- Quotas in Amazon DynamoDB — Amazon DynamoDB Developer Guide
- Troubleshooting throttling in Amazon DynamoDB — Amazon DynamoDB Developer Guide
- DynamoDB on-demand capacity mode — Amazon DynamoDB Developer Guide
Ultima verifica 2026-07-13 rispetto alla documentazione ufficiale AWS collegata sopra.