Les opérations de lecture ou d'écriture de ma table Amazon DynamoDB sont limitées, ce qui entraîne des erreurs dans mes applications. Toutefois, Amazon CloudWatch indique que les unités de capacité consommées ne dépassent pas les unités de capacité allouées. Pourquoi cela se produit-il et comment puis-je résoudre le problème ?  

En général, ces limitations surviennent lorsque vos applications en aval accèdent à une partition unique beaucoup plus souvent qu'à d'autres partitions (partition « à chaud »), ou lorsque les charges de travail se concentrent sur de courtes périodes avec une utilisation intense (« rafale » d'activités de lecture ou d'écriture).

Pour éviter les partitions à chaud et les limitations, vous devez optimiser votre structure de partition et de table en suivant les stratégies axées sur les bonnes pratiques de Bonnes pratiques pour DynamoDB.

Envisagez l'une ou plusieurs des solutions suivantes :

  • Augmentez la capacité d'écriture ou de lecture de votre table afin d'anticiper les pics et les rafales intensives de courte durée au cours des opérations de lecture et d'écriture. Si vous décidez par la suite que vous n'avez pas besoin de cette capacité supplémentaire, réduisez-la.
    Remarque : avant de choisir la quantité d'augmentation des capacités de lecture ou écriture, examinez les bonnes pratiques de Conception de clés de partitions pour distribuer votre charge de travail équitablement.
  • Implémentez de nouvelles tentatives après erreur et des interruptions exponentielles. Cette technique utilise des temps d'attente progressivement plus longs entre les tentatives en cas de réponses d'erreur consécutives afin d'améliorer la fiabilité d'une application. Si vous utilisez un kit SDK AWS, cette logique est intégrée ; sinon, envisagez de l'implémenter manuellement.
  • Distribuez vos opérations de lecture et vos opérations d'écriture aussi uniformément que possible dans la table. Une partition « à chaud » peut réduire les performances globales de votre table.
  • Mettez en œuvre une solution de mise en cache comme DynamoDB Accelerator (DAX) ou Amazon ElastiCache. DAX est un service de mise en cache compatible avec DynamoDB proposant des performances en mémoire rapides pour votre application. Si la charge de travail comprend principalement des accès en lecture de données statiques, les résultats de requête sont souvent mieux servis à partir d'un cache bien conçu plutôt que d'une base de données.

La capacité adaptative s'active dans un délai de 5 à 30 minutes pour aider à limiter les problèmes de déséquilibre des charges de travail à court terme. Toutefois, chaque partition reste soumise à la limite en dur de 1000 unités de capacité d'écriture et 3000 unités de capacité d'écriture, la capacité adaptative ne peut donc pas résoudre les problèmes de taille supérieure de votre conception de table ou de partition.


Cette page vous a-t-elle été utile ? Oui | Non

Retour au Centre de connaissances AWS Support

Vous avez besoin d'aide ? Consultez le site du Centre AWS Support

Date de publication : 17/08/2016

Date de mise à jour : 29/05/2018