Passer au contenu

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

Lecture de 4 minute(s)
0

Ma table Amazon DynamoDB à la demande est limitée, et je ne sais pas pourquoi.

Résolution

Les tables DynamoDB qui utilisent le mode de capacité à la demande s'adaptent automatiquement au volume de trafic de votre application. Toutefois, les scénarios suivants peuvent entraîner une limitation de vos tables DynamoDB à la demande.

Le trafic représente plus du double du pic précédent

Les tables à la demande DynamoDB peuvent être limitées lorsque le trafic dépasse le double du débit maximal précédent dans un délai de 30 minutes.

Pour résoudre ce problème, augmentez progressivement votre trafic pendant au moins 30 minutes avant d'atteindre le double de votre pic précédent. Pour surveiller le débit de votre table, utilisez les métriques ConsumedReadCapacityUnits et ConsumedWriteCapacityUnits dans Amazon CloudWatch. Pour surveiller la limitation à la demande, utilisez ReadMaxOnDemandThroughputThrottleEvents et WriteMaxOnDemandThroughputThrottleEvents.

Pour les nouvelles tables à la demande, vous pouvez aller immédiatement jusqu'à 4 000 unités de requête en écriture ou 12 000 unités de requête en lecture, ou toute combinaison linéaire des deux. Pour les événements planifiés ou de pic, utilisez le débit semi-automatique pour adapter la capacité de votre table à votre utilisation prévue.

Si vous passez une table existante en mode de capacité à la demande, le pic précédent correspond à l'une des valeurs suivantes :

  • Les nouvelles tables commencent avec 4 000 unités de capacité d'écriture (WCU) et 12 000 unités de capacité de lecture (RCU).
  • Si vous avez provisionné votre table à une valeur supérieure à la valeur de départ, elle conserve la capacité la plus élevée.
  • La capacité initiale peut être plus élevée dans le cas de modèles d'utilisation soutenus.

Le trafic dépasse la valeur maximale pour chaque partition

Chaque partition de la table peut accepter jusqu'à 1 000 unités de requête d’écriture ou 3000 unités de requête de lecture, ou une combinaison linéaire des deux. Si le trafic vers une partition dépasse ce quota, il est possible que la partition soit limitée.

Pour résoudre ce problème, procédez comme suit :

  1. Utilisez CloudWatch Contributor Insights pour DynamoDB afin d'identifier les clés les plus fréquemment consultées et limitées de votre table.
  2. Utilisez des métriques améliorées pour vérifier que les événements de limitation des partitions en sont la cause.
  3. Utilisez le partitionnement en écriture pour répartir uniformément les requêtes entre vos partitions.
  4. Optimisez vos nouvelles tentatives après une erreur et votre stratégie de backoff exponentiel.

Le trafic dépasse le quota de votre compte AWS pour chaque table

Par défaut, les tables à la demande ont des quotas au niveau du compte de 40 000 WCU et 40 000 RCU pour chaque table. Si le trafic vers une table dépasse les quotas de débit pour chaque table, celle-ci peut être limitée.

Pour résoudre ce problème, procédez comme suit :

  1. Dans CloudWatch, comparez les unités ConsumedReadCapacityUnits et ConsumedWriteCapacityUnits par rapport à vos quotas actuels.
  2. Demandez une augmentation du quota au niveau du compte pour les unités de capacité de lecture et d'écriture au niveau de la table.

Le GSI de votre table subit une limitation

Si votre table DynamoDB comporte un GSI qui est limité, cette limitation peut entraîner une limitation de contre-pression sur la table de base. Pour plus d'informations, consultez la section Comprendre la limitation en écriture de l'index secondaire global (GSI) et la contre-pression dans DynamoDB et Utilisation de GSI dans DynamoDB.

Le trafic dépasse le débit maximal configuré

Si vous avez configuré des quotas de débit maximum pour votre table à la demande, une erreur « ThrottlingException » s'affiche lorsque vous dépassez vos quotas de débit.

En fonction de votre cas d'utilisation, effectuez l'une des actions suivantes :

Pour surveiller le débit maximal que vous avez configuré pour une table ou un GSI, utilisez les métriques OnDemandMaxReadRequestUnits et OnDemandMaxWriteRequestUnits dans CloudWatch.

Informations connexes

Guide de résolution de la limitation DynamoDB

Comment puis-je choisir la clé primaire adéquate pour ma table Amazon DynamoDB ?

Pourquoi mes métriques sur DynamoDB sont-elles différentes de celles de CloudWatch ?

Quotas dans DynamoDB

Présentation du débit maximal configurable pour DynamoDB à la demande

AWS OFFICIELA mis à jour il y a 4 mois