Débit à la demande DynamoDB dépassé
En bref — Oui, les tables à la demande peuvent quand même être limitées. Les trois causes : tu as défini un débit maximal (MaxReadRequestUnits/MaxWriteRequestUnits) et l'as dépassé ; tu as généré plus du double de ton pic de trafic précédent en 30 minutes ; ou tu as atteint un quota au niveau de la table (par défaut 40 000 unités de requête en lecture et 40 000 unités de requête en écriture par table). Relève ou supprime le maximum, monte le trafic progressivement, et conserve des nouvelles tentatives à backoff exponentiel.
Ce que ça signifie
ThrottlingException: Rate of requests exceeds the allowed throughput.Le mode à la demande monte en charge pour absorber le trafic, mais pas instantanément et pas sans plafonds. Les nouvelles tables à la demande soutiennent jusqu'à 4 000 écritures et 12 000 lectures par seconde immédiatement, et le mode à la demande absorbe instantanément jusqu'au double de ton pic de trafic précédent. Dépasser un maximum configuré, distancer ce doublement en 30 minutes, ou franchir un quota se manifestent tous par une limitation — ThrottlingException est un HTTP 400 réessayable, et l'erreur porte des champs ThrottlingReason (par ex. IndexWriteMaxOnDemandThroughputExceeded) nommant la ressource et la limite qui a été atteinte.
Pourquoi ça arrive
- Un débit maximal configuré — tu as défini
MaxReadRequestUnits/MaxWriteRequestUnitset la demande l'a franchi ; DynamoDB renvoie uneThrottlingException(c'est un plafond de contrôle des coûts que tu as choisi, appliqué au mieux). - Plus rapide que 2x le pic précédent — le mode à la demande absorbe instantanément jusqu'au double de ton pic précédent, mais une limitation peut survenir si tu dépasses le double de ce pic en 30 minutes.
- Montée à froid — une table toute neuve (ou un chargement en masse juste après sa création) dépasse la base initiale de 4 000 écritures et 12 000 lectures par seconde.
- Quota au niveau de la table — le plafond par défaut par table de 40 000 unités de requête en lecture et 40 000 unités de requête en écriture ; les dépassements de quota au niveau du compte se manifestent plutôt par
RequestLimitExceeded. - Une partition chaude — du trafic concentré sur une seule clé de partition, qui a sa propre limite par partition quel que soit le mode de la table.
Comment le corriger
- Relève le maximum configuré — augmente
MaxReadRequestUnits/MaxWriteRequestUnitsviaUpdateTable, ou fixe la valeur à-1pour supprimer ton plafond personnalisé (les quotas de service s'appliquent toujours). - Préchauffe avant un pic connu — utilise le paramètre de débit à chaud (warm throughput) de DynamoDB, ou étale la croissance du trafic sur au moins 30 minutes pour que le doublement du mode à la demande reste en avance sur la demande au lieu de courir après un changement brusque.
- Conserve des nouvelles tentatives à backoff exponentiel — le SDK réessaie les limitations par défaut ; utilise le mode de nouvelle tentative adaptatif pour les charges en rafales.
- Limite les imports en masse ou utilise la fonctionnalité d'import S3 au lieu de marteler une table neuve.
- Étale l'espace des clés pour qu'aucune clé de partition unique ne devienne chaude — une partition chaude limite même lorsque la table a de la marge.
- Demande une augmentation de quota si tu as légitimement besoin de plus de 40 000 unités de requête en lecture/écriture sur une table.
Tu cherches quelle clé absorbe les requêtes ? Parcours et filtre la table dans l'application de bureau DynoTable pour trouver la clé de partition chaude avant qu'elle ne plafonne ton débit.
FAQ
Une table DynamoDB à la demande peut-elle être limitée ? Oui. Les tables à la demande sont limitées lorsque tu dépasses un débit maximal configuré, génères plus du double de ton pic de trafic précédent avant que DynamoDB ait fini de monter en charge, franchis le quota par défaut par table de 40 000 unités de requête en lecture et 40 000 en écriture, ou concentres le trafic sur une clé de partition chaude.
Comment relever la limite de débit à la demande ?
Augmente MaxReadRequestUnits/MaxWriteRequestUnits via UpdateTable, ou fixe la valeur à -1 pour supprimer ton plafond personnalisé — les quotas de compte s'appliquent toujours. Si tu as besoin de plus que les 40 000 unités de requête par défaut par table, demande une augmentation de quota.
Erreurs liées
- ProvisionedThroughputExceededException — l'équivalent en mode provisionné.
- ThrottlingException — limites de débit du plan de contrôle / du compte.
- Apprends : À la demande vs provisionné · Partitions chaudes
Références
- DynamoDB on-demand capacity mode — Amazon DynamoDB Developer Guide
- DynamoDB maximum throughput for on-demand tables — Amazon DynamoDB Developer Guide
- OnDemandThroughput — Amazon DynamoDB API Reference
- Quotas in Amazon DynamoDB — Amazon DynamoDB Developer Guide
- Troubleshooting throttling in Amazon DynamoDB — Amazon DynamoDB Developer Guide
- Error handling with DynamoDB — Amazon DynamoDB Developer Guide
Dernière vérification le 2026-07-13 par rapport à la documentation officielle AWS liée ci-dessus.