Comment résoudre les problèmes liés à la latence élevée sur une table Amazon DynamoDB ?

Lecture de 3 minute(s)
0

Je constate une augmentation du temps de réponse aux demandes Amazon DynamoDB.

Solution

Pour résoudre les problèmes de latence élevée sur votre table DynamoDB, analysez la métrique Amazon CloudWatch SuccessfulRequestLatency et vérifiez la latence moyenne. Les pics occasionnels de latence ne sont pas une source de préoccupation. Toutefois, si la latence moyenne est élevée, il peut exister un problème sous-jacent que vous devez résoudre.

Pour obtenir la valeur de latence de tous les appels DynamoDB, activez la journalisation des métriques de latence pour le kit SDK AWS. Ces métriques peuvent vous aider à identifier la source de l'augmentation de la latence. Notez que les métriques de latence DynamoDB mesurent l'activité au sein de DynamoDB ou Amazon DynamoDB Streams uniquement. Les métriques de latence ne prennent pas en compte la latence réseau ni l'activité côté client.

Remarque : pour la plupart des opérations atomiques, telles que GetItem et PutItem, vous pouvez vous attendre à une latence moyenne de moins de 10 millisecondes. La latence pour les opérations non atomiques, telles que Query et Scan, dépend de nombreux facteurs, notamment de la taille du jeu de résultats et de la complexité des conditions et des filtres de requêtes.

Prenez en compte une ou plusieurs des politiques suivantes pour réduire la latence :

  • Réduire les paramètres de délai d'expiration de la demande – réglez les paramètres du kit SDK client requestTimeOut et clientExecutionTimeout sur timeout et réduisez davantage les délais d'échec (par exemple, après 50 millisecondes). Cela conduit le client à abandonner les demandes à latence élevée après le délai spécifié, puis à envoyer une deuxième demande qui se termine généralement beaucoup plus rapidement que la première. Pour plus d'informations sur les paramètres de délai d'attente, veuillez consulter la rubrique Réglage des paramètres de demande HTTP du kit AWS SDK Java pour les applications Amazon DynamoDB prenant en charge la latence.
  • Réduire la distance entre le client et le point de terminaison DynamoDB : si vous disposez d'utilisateurs dispersés dans le monde entier, pensez à utiliser des tables globales. Avec les tables globales, vous pouvez spécifier les régions AWS dans lesquelles vous souhaitez que la table soit disponible. Cela peut réduire considérablement la latence pour vos utilisateurs. Pensez également à utiliser le point de terminaison de la passerelle DynamoDB pour éviter le trafic sur Internet.
  • Utiliser la mise en cache : si votre trafic est lourd, pensez à utiliser un service de mise en cache comme Amazon DynamoDB Accelerator (DAX). DAX est un cache en mémoire entièrement géré et hautement disponible pour DynamoDB. Il offre des performances jusqu'à dix fois supérieures (de plusieurs millisecondes à quelques microsecondes), même en traitant des millions de requêtes par seconde.
  • Envoyer un trafic constant ou réutiliser les connexions – lorsque vous n'effectuez pas de demandes, pensez à faire en sorte que le client envoie le trafic fictif vers une table DynamoDB. Ou vous pouvez réutiliser les connexions client ou utiliser le regroupement de connexions. Toutes ces techniques maintiennent les caches internes réactifs, ce qui permet de maintenir une latence faible.
  • Utiliser des lectures éventuellement cohérentes – si votre application ne nécessite pas de lectures fortement cohérentes, pensez à utiliser des lectures éventuellement cohérentes. Les lectures éventuellement cohérentes sont moins coûteuses et moins susceptibles de subir une latence élevée. Pour plus d'informations, consultez Cohérence de lecture.

informations connexes

Activation des métriques pour le kit AWS SDK pour Java

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 2 ans