Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
2- Dépassement du débit provisionné
La limitation de capacité allouée se produit lorsque le taux de consommation de votre application dépasse les unités de capacité de lecture ou d'écriture (RCUs/WCUs) configurées pour vos tables ou vos index secondaires globaux. Alors que DynamoDB fournit une capacité de débordement pour gérer les pics de trafic occasionnels, les demandes soutenues dépassant les limites que vous avez allouées entraînent une limitation. Dans ce cas, DynamoDB renvoie le type de raison de limitation ProvisionedThroughputExceeded dans l’exception de limitation. La raison indique si le problème concerne les opérations de lecture ou d’écriture et s’il affecte la table de base ou un index secondaire global.
La limitation peut se produire, qu’Auto Scaling soit activé ou non. Auto Scaling s’adapte à l’augmentation de la consommation, mais ne réagit pas instantanément et est soumis aux limites de capacité maximale que vous configurez. En d’autres termes, la limitation peut toujours se produire lors de pics de trafic soudains ou lorsque la consommation dépasse vos limites Auto Scaling maximales.
Le débit provisionné a dépassé les mesures d’atténuation
Cette section fournit des conseils de résolution pour les scénarios de limitation de la capacité provisionnée. Avant d’utiliser ce guide, assurez-vous d’avoir identifié la raison spécifique de la limitation liée à la gestion des exceptions par votre application et d’avoir déterminé l’Amazon Resource Name (ARN) de la ressource concernée. Pour en savoir plus sur la façon de déterminer les raisons de la limitation et d’identifier des ressources limitées, consultez Cadre de diagnostic des limitations DynamoDB.
Avant de vous plonger dans des scénarios de limitation spécifiques, déterminez si la limitation est réellement un problème à résoudre :
-
Des limitations occasionnelles sont normales et attendues dans les applications DynamoDB bien optimisées. Une limitation indique simplement que vous consommez 100 % de ce que vous avez provisionné. Si votre application gère correctement la limitation lors des nouvelles tentatives et que vos performances globales répondent aux exigences, il est possible que la limitation ne nécessite pas d’action immédiate.
-
Toutefois, si la limitation entraîne une latence inacceptable côté client, détériore l’expérience utilisateur ou empêche les opérations critiques de se terminer en temps voulu, appliquez les mesures d’atténuation ci-dessous.
Lorsque vous devez résoudre des problèmes de limitation, déterminez d’abord si la limitation est causée par :
-
Des pics de trafic temporaires : augmentations de trafic de courte durée qui dépassent votre capacité provisionnée, mais qui ne sont pas durables. Ces pics de trafic nécessitent des stratégies différentes de celles d’un trafic élevé continu.
-
Un trafic élevé continu : charges de travail soutenues qui dépassent constamment la capacité provisionnée.
Pour les pics de trafic, envisagez de recourir aux stratégies décrites dans le blog Gérer les pics de trafic avec la capacité provisionnée d’Amazon DynamoDB dans Ressources supplémentaires.
Pour un trafic élevé continu, envisagez de recourir aux options d’ajustement de la capacité ci-dessous :
TableReadProvisionedThroughputExceeded
Quand cela se produit
Le taux de consommation de lecture de votre application dépasse les unités de capacité de lecture allouées (RCUs) configurées pour votre table. Vous pouvez surveiller les CloudWatch métriques Techniques courantes de diagnostic et de surveillance pour analyser votre événement de régulation.
Étapes à suivre pour résoudre le problème
Envisagez les stratégies suivantes pour résoudre le problème de limitation de la capacité de lecture :
-
Passez en mode de capacité à la demande : envisagez de faire passer votre table en mode à la demande si vous êtes fréquemment confronté à une limitation due à des pics de trafic. Le mode à la demande élimine les problèmes de provisionnement et adapte automatiquement la capacité à votre charge de travail.
-
Si vous restez en mode provisionné et qu’Auto Scaling n’est pas activé :
-
Envisagez d’augmenter la capacité de lecture de la table.
-
Activez Auto Scaling pour la capacité de lecture au niveau de votre table.
-
-
Si Auto Scaling est activé (par défaut pour les tables créées dans la console) :
TableWriteProvisionedThroughputExceeded
Quand cela se produit
Le taux de consommation d'écriture de votre application dépasse les unités de capacité d'écriture allouées (WCUs) configurées pour votre table. Vous pouvez surveiller les CloudWatch métriques Techniques courantes de diagnostic et de surveillance pour analyser votre événement de régulation.
Étapes à suivre pour résoudre le problème
Envisagez les stratégies suivantes pour résoudre le problème de limitation de la capacité d’écriture :
-
Passez en mode de capacité à la demande : envisagez de faire passer votre table en mode à la demande si vous êtes fréquemment confronté à une limitation due à des pics de trafic. Le mode à la demande élimine les problèmes de provisionnement et adapte automatiquement la capacité à votre charge de travail.
-
Si vous restez en mode provisionné et qu’Auto Scaling n’est pas activé :
-
Envisagez d’augmenter la capacité d’écriture de la table.
-
Activez Auto Scaling pour la capacité d’écriture au niveau de votre table.
-
-
Si Auto Scaling est activé (par défaut pour les tables créées dans la console) :
IndexReadProvisionedThroughputExceeded
Quand cela se produit
La consommation de lecture sur un index secondaire global (GSI) dépasse les unités de capacité de lecture allouées au GSI (). RCUs Vous pouvez surveiller les CloudWatch métriques Techniques courantes de diagnostic et de surveillance pour analyser votre événement de régulation.
Étapes à suivre pour résoudre le problème
Envisagez les stratégies suivantes pour résoudre le problème de limitation de la capacité de lecture du GSI :
-
Passez en mode de capacité à la demande : envisagez de faire passer la table de base en mode à la demande si vous êtes fréquemment confronté à une limitation due à des pics de trafic. Le mode à la demande élimine les problèmes de provisionnement et adapte automatiquement la capacité à votre charge de travail.
-
Si vous restez en mode provisionné et qu’Auto Scaling n’est pas activé :
-
Envisagez d’augmenter la capacité de lecture du GSI.
-
Activez Auto Scaling pour la capacité de lecture au niveau de votre GSI.
-
-
Si Auto Scaling est activé (par défaut pour les tables créées dans la console) :
IndexWriteProvisionedThroughputExceeded
Quand cela se produit
Les mises à jour des éléments de la table de base déclenchent des écritures dans un GSI qui dépassent la capacité d’écriture provisionnée du GSI. Cela entraîne une contre-pression de limitation au niveau des écritures de la table de base. Vous pouvez surveiller les CloudWatch métriques Techniques courantes de diagnostic et de surveillance pour analyser votre événement de régulation.
Étapes à suivre pour résoudre le problème
Envisagez les stratégies suivantes pour résoudre le problème de limitation de la capacité d’écriture du GSI :
-
Passez en mode de capacité à la demande : envisagez de faire passer la table de base en mode à la demande si vous êtes fréquemment confronté à une limitation due à des pics de trafic. Le mode à la demande élimine les problèmes de provisionnement et adapte automatiquement la capacité à votre charge de travail.
-
Si vous restez en mode provisionné et qu’Auto Scaling n’est pas activé :
-
Envisagez d’augmenter la capacité d’écriture du GSI.
-
Activez Auto Scaling pour la capacité d’écriture au niveau de votre GSI.
-
-
Si Auto Scaling est activé (par défaut pour les tables créées dans la console) :
Techniques courantes de diagnostic et de surveillance
Lors de la résolution des erreurs de débit, plusieurs CloudWatch mesures peuvent aider à en identifier la cause première.
CloudWatch Indicateurs essentiels
Surveillez ces métriques clés pour diagnostiquer la limitation de la capacité provisionnée :
-
Événements de limitation :
ReadProvisionedThroughputThrottleEventsetWriteProvisionedThroughputThrottleEventssuivent les demandes qui sont limitées pour cette raison.ReadThrottleEventsetWriteThrottleEventssuivent les demandes de lecture ou d’écriture qui dépassent la capacité provisionnée. -
Consommation de capacité :
ConsumedReadCapacityUnitsetConsumedWriteCapacityUnitsaffichent l’utilisation réelle. -
Capacité provisionnée :
ProvisionedReadCapacityUnitsetProvisionedWriteCapacityUnitsaffichent les limites configurées.
Procédures de résolution
Augmentation de la capacité de débit des tables
Utilisez cette procédure lorsque Auto Scaling n’est pas activé et que vous avez besoin d’une augmentation de capacité immédiate.
-
Mettez à jour la capacité provisionnée de votre table à l'aide de la console AWS CLI DynamoDB ou du SDK :
-
Pour la capacité de lecture : augmentez le paramètre
ReadCapacityUnits, qui indique le nombre maximum de lectures fortement cohérentes consommées par seconde avant que DynamoDB ne limite les demandes. -
Pour la capacité d’écriture : augmentez le paramètre
WriteCapacityUnits, qui indique le nombre maximum d’écritures consommées par seconde avant que DynamoDB ne limite les demandes.
-
-
Vérifiez que vos nouveaux paramètres de capacité ne dépassent pas les quotas de débit par table et que la consommation totale de votre compte reste inférieure aux quotas de débit par compte pour votre région. Si vous vous rapprochez de ces limites, envisagez plutôt de passer en mode de capacité à la demande.
Configuration de l’autoscaling des tables pour ajuster la capacité de lecture ou d’écriture de votre table ou de votre GSI
Configurez DynamoDB Auto Scaling pour ajuster automatiquement la capacité de lecture ou d’écriture en fonction des modèles de trafic. Vous pouvez configurer Auto Scaling indépendamment pour les deux tables GSIs, avec des contrôles distincts pour les unités de capacité de lecture et d'écriture.
-
Activez Auto Scaling pour la capacité de lecture, la capacité d’écriture ou les deux au niveau de votre table ou de votre GSI.
-
Définissez un pourcentage d’utilisation cible avec une marge de manœuvre pour les pics de trafic.
Note
La baisse du taux d’utilisation cible augmente les coûts et la fréquence de mise à l’échelle. Les objectifs inférieurs à 40 % peuvent entraîner un surprovisionnement. Surveillez les modèles d’utilisation et les coûts pour trouver un juste milieu entre performance et efficacité.
-
Définissez les limites de capacité :
-
Minimum RCUs/WCUs: Maintient une capacité suffisante pendant les périodes de faible trafic.
-
Maximum RCUs/WCUs: répond aux pics de trafic et protège contre les événements de montée en flèche.
-
Pour obtenir des conseils sur la configuration et la gestion de DynamoDB Auto Scaling, consultez Gestion automatique de la capacité de débit avec la scalabilité automatique de DynamoDB.
Note
Auto Scaling nécessite généralement plusieurs minutes avant de répondre aux modifications du trafic. En cas de pics de trafic soudains, la capacité de débordement de votre table fournit une protection immédiate pendant qu’Auto Scaling s’ajuste. Configurez l’utilisation cible avec une marge de manœuvre adéquate afin de laisser le temps de mettre à l’échelle les opérations et de préserver la capacité de débordement en cas de demande imprévue.
Optimisation des paramètres Auto Scaling de lecture ou d’écriture de votre table ou de votre index
Utilisez cette procédure lorsque Auto Scaling est activé, mais que la limitation persiste. Vous pouvez régler Auto Scaling indépendamment pour les tables et les index secondaires globaux (GSIs), avec des contrôles distincts pour les unités de capacité de lecture et d'écriture.
-
Ajustez l'utilisation cible : envisagez de réduire l'utilisation cible de votre table ou GSIs de déclencher le dimensionnement plus tôt avant que la limitation ne se produise. Assurez-vous de surveiller le trafic après avoir effectué ces ajustements. Consultez Configuration de l’autoscaling des tables pour ajuster la capacité de lecture ou d’écriture de votre table ou de votre GSI pour plus d’informations sur la consommation de capacité et les implications en matière de coûts.
-
Vérifiez les limites de capacité : assurez-vous que vos paramètres de capacité minimale et maximale correspondent à vos modèles de charge de travail réels.
Passer au mode de capacité à la demande
Pour des informations générales sur la façon de changer de mode de capacité, consultez Considérations relatives au changement de mode de capacité dans DynamoDB. Reportez-vous aux Service Quotas pour en savoir plus sur les contraintes spécifiques liées au changement de mode.
Augmentation de la capacité de débit du GSI
Utilisez cette procédure lorsque Auto Scaling n’est pas activé sur votre GSI ou si vous avez besoin d’une augmentation de capacité immédiate.
-
Mettez à jour la capacité provisionnée du GSI à l'aide de la console DynamoDB ou du SDK : AWS CLI
-
Pour la capacité de lecture : augmentez le paramètre
ReadCapacityUnitsde ce GSI spécifique, qui indique le nombre maximal de lectures que le GSI peut effectuer par seconde avant que DynamoDB ne limite les demandes. Notez que GSIs seules les lectures éventuellement cohérentes sont prises en charge. -
Pour la capacité d’écriture : augmentez le paramètre
WriteCapacityUnitspour ce GSI spécifique, qui indique le nombre maximum d’écritures que le GSI peut consommer par seconde avant que DynamoDB ne limite les demandes.
-
-
Assurez-vous que la capacité de débit provisionné du GSI reste dans les limites des quotas de débit par compte et par table.
Ressources supplémentaires
-
Pour obtenir des informations détaillées sur la gestion des pics de trafic dans les tables de capacité provisionnée de DynamoDB, y compris les différentes stratégies allant de l’utilisation d’Auto Scaling et de la capacité de débordement à la gestion stratégique de l’accélérateur, consultez Handle traffic spikes with Amazon DynamoDB provisioned capacity
. -
Pour plus d’informations sur l’utilisation d’une expression cron pour planifier une politique de mise à l’échelle, consultez Optimize costs by scheduling provisioned capacity for DynamoDB
. -
Pour obtenir des informations pratiques sur la surveillance et l’analyse des modèles d’utilisation du débit pour vos tables DynamoDB en mode de capacité provisionnée, consultez How to evaluate throughput utilization for Amazon DynamoDB tables in provisioned mode
.