Pourquoi ma table Amazon DynamoDB à la demande est-elle limitée ?

Dernière mise à jour : 2021-10-12

Les opérations de lecture ou d'écriture sur ma table Amazon DynamoDB sont limitées.

Brève description

La limitation est l'un des problèmes de performances les plus courants que vous pouvez rencontrer avec vos tables DynamoDB. La limitation peut être causée par DynamoDB ou par les applications qui lisent ou écrivent dans votre table DynamoDB.

Voici quelques-uns des problèmes de limitation les plus courants que vous pourriez rencontrer :

  • Votre table DynamoDB dispose d'une capacité allouée adéquate, mais la plupart des demandes sont en cours de limitation.
  • Vous avez activé AWS Application Auto Scaling for DynamoDB, mais votre table DynamoDB est en cours de limitation.
  • Votre table DynamoDB est en mode de capacité à la demande, mais la table est en cours de limitation.
  • Vous avez une partition à chaud dans votre table.

Solution

Pour plus d'informations sur les métriques DynamoDB à surveiller pendant les événements de limitation, consultez la section Métriques et dimensions DynamoDB. Ces métriques peuvent vous aider à localiser les opérations qui créent des demandes de limitation et à identifier la cause de la limitation. Utilisez une ou plusieurs des options de dépannage suivantes en fonction de votre cas d'utilisation.

Votre table DynamoDB dispose d'une capacité allouée adéquate, mais la plupart des demandes sont en cours de limitation

DynamoDB signale les métriques de niveau minute à Amazon CloudWatch. Les métriques sont calculées en tant que somme pendant une minute, puis sont moyennées. Toutefois, les limites de débit DynamoDB sont appliquées par seconde.

Par exemple, si vous avez alloué 60 unités de capacité d'écriture pour votre table DynamoDB, vous pouvez effectuer 3 600 écritures en une minute. Toutefois, le fait de piloter toutes les 3 600 demandes en une seconde sans aucune demande pendant le reste de la minute peut entraîner une limitation. Le nombre total d'unités de capacité de lecture ou d'écriture par minute peut être inférieur au débit alloué pour la table. Cependant, si la totalité de l'application tombe en quelques secondes, les demandes peuvent être soumises à une limitation.

Pour résoudre ce problème, ajoutez une gigue et un backoff exponentiel à vos appels d'API. Pour plus d'informations, consultez la section Backoff exponentiel et gigue.

Vous avez activé AWS Application Auto Scaling, mais votre table est toujours en cours de limitation

AWS Application Auto Scaling n'est pas une solution adaptée aux pics inopinés de trafic avec les tables DynamoDB. Application Auto Scaling lance une augmentation de l'échelle uniquement lorsque deux points de données consécutifs des unités de capacité consommées dépassent la valeur d'utilisation cible configurée sur une période d'une minute. Application Auto Scaling met automatiquement à l'échelle la capacité allouée uniquement lorsque la capacité consommée est supérieure à l'utilisation cible pendant deux minutes cohérentes. En outre, un événement de réduction de l'échelle est déclenché lorsque 15 points de données consécutifs de la capacité consommée dans CloudWatch sont inférieurs à l'utilisation cible. Après le lancement d'Application Auto Scaling, un appel d'API UpdateTable est invoqué. Cela peut prendre quelques minutes pour mettre à jour la capacité allouée de votre table ou de votre index DynamoDB. Application Auto Scaling nécessite des points de données consécutifs avec des valeurs d'utilisation cible plus élevées pour augmenter la capacité allouée de la table DynamoDB. Au cours de cette période, toutes les demandes qui dépassent la capacité allouée de la table sont soumises à limitation. Par conséquent, il n'est pas recommandé d'utiliser Application Auto Scaling pour gérer les applications à leur pic dans DynamoDB. Pour plus d'informations, consultez la section de Gestion automatique de la capacité de débit avec la scalabilité automatique DynamoDB.

Votre table utilise le mode de capacité à la demande, mais la table est toujours en cours de limitation

Lorsque la table utilise le mode de capacité à la demande, elle n'est pas limitée tant que les conditions suivantes sont remplies :

  • Le modèle d'accès est distribué uniformément sur les partitions pour éviter les problèmes liés à la partition à chaud.
  • La table ne dépasse pas le double de son pic de trafic précédent.

Pour les tables à la demande, DynamoDB alloue automatiquement plus de capacité à mesure que votre volume de trafic augmente afin de s'assurer que votre application ne subit pas de limitation. Toutefois, une limitation peut se produire si le volume de trafic est supérieur au double du pic précédent sur une période de 30 minutes. Pour plus d'informations, consultez la section des Propriétés du pic de trafic et de mise à l'échelle.

Vous avez une partition à chaud dans votre table

Dans DynamoDB, une clé de partition qui n'a pas une cardinalité élevée peut entraîner de nombreuses demandes ciblant seulement quelques partitions et entraîner une partition à chaud. Une partition à chaud peut provoquer une limitation si les limites de partition de 3000 RCU ou 1000 WCU (ou une combinaison des deux) par seconde sont dépassées.

Pour trouver les éléments les plus consultés et les plus limités de votre table, utilisez Amazon CloudWatch Contributor Insights. Amazon CloudWatch Contributor Insights est un outil de diagnostic qui fournit une vue récapitulative des tendances de trafic de votre table DynamoDB et vous aide à identifier les clés les plus fréquemment utilisées. Avec cet outil, vous pouvez surveiller en permanence les graphiques des modèles d'accès aux éléments de votre table. Une partition à chaud peut dégrader les performances globales de votre table. Pour éviter ces mauvaises performances, répartissez les opérations de lecture et d'écriture aussi uniformément que possible dans votre table. Pour plus d'informations, consultez la page de Conception de clés de partition pour répartir votre application de manière uniforme. Pour plus d'informations sur le choix de la bonne clé de partition, consultez la section de Choix de la bonne clé de partition DynamoDB.

Remarque : L'utilisation de l'outil CloudWatch Contributor Insights pour DynamoDB entraîne des frais supplémentaires. Pour plus d'informations, consultez la section de Facturation de CloudWatch Contributor Insights for DynamoDB.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?