Comment puis-je savoir si mon volume Amazon EBS subit un micro-bursting et comment puis-je empêcher que cela ne se produise ?

Lecture de 6 minute(s)
0

J'ai un volume Amazon Elastic Block Store (Amazon EBS) qui ne dépasse pas sa limite de débit ou d'IOPS dans Amazon CloudWatch. Mais le volume semble toutefois limité et présente une latence et une longueur de file d'attente élevées.

Brève description

CloudWatch surveille les IOPS (op/s) et le débit (octet/s) de tous les types de volumes Amazon EBS en collectant des échantillons toutes les minutes.

Le micro-bursting se produit lorsqu'un volume EBS transmet (« bursts ») un IOPS ou un débit élevé sur des périodes nettement plus courtes que celle de collecte. Étant donné que le volume transmet des IOPS ou un débit élevé pendant une période plus courte que la période de collecte, CloudWatch ne renseigne pas sur le bursting.

Exemple : Un volume IO1 (période de collecte d'une minute) avec 950 IOPS alloués, possède une application qui transmet 1 000 IOPS pendant cinq secondes. Amazon EBS limtie l'application lorsqu'elle atteint la limite d'IOPS du volume. À ce stade, le volume ne peut pas gérer la charge de travail, ce qui entraîne une longueur de file d'attente accrue et une latence plus élevée.

CloudWatch n'indique pas que le volume a dépassé la limite d'IOPS car la période de collecte est de 60 secondes. 1 000 IOPS pendant seulement 5 secondes. Pendant les 55 secondes restantes de la période de collecte de une minute, le volume est resté inactif. Ainsi, le nombre de VolumeReadOps+VolumeWriteOps est donc égal à 5 000 opérations (1 000*5 secondes) pour la minute entière. Cela correspond à une moyenne de 83,33 IOPS sur une minute (5 000 / 60 secondes). Cette moyenne n'est généralement pas problématique.
Dans ce cas, le VolumeIdleTime pour ce même temps d'échantillonnage est de 55 secondes, car le volume reste inactif pendant le reste de la période de collecte. Cela signifie que les 5 000 opérations (VolumeReadops+VolumeWriteOps) effectuées pendant cet échantillonnage se produisent dans une période de cinq secondes seulement. Si l’on divise 5 000 par 5 pour calculer le nombre moyen d'IOPS, on obtient 1 000 IOPS. Le seuil du volume est donc de 1 000 IOPS.

Pour déterminer si des micro-bursting se produisent dans votre volume, procédez comme suit :

  1. Utilisez les métriques CloudWatch pour identifier d’éventuelles micro-bursting.
  2. Utilisez CloudWatch pour obtenir l'événement de micro-bursting.
  3. Confirmez le micro-bursting à l'aide d'un outil au niveau du système d'exploitation.
  4. Empêchez le micro-bursting en changeant la taille ou le type de votre volume pour qu'il s'adapte à vos applications.

Résolution

Utilisez les métriques CloudWatch pour identifier les éventuels micro-bursting

  1. Consultez la métrique VolumeIdleTime. Cette métrique indique le nombre total de secondes pendant une période spécifiée lorsqu'aucune opération de lecture ou d'écriture n'est soumise. Si le VolumeIdleTime est élevé, le volume est resté inactif pendant la majeure partie de la période de collecte. Des IOPS ou un débit suffisamment élevés au même moment de l'échantillonnage indiquent qu'un micro-éclatement est susceptible de se produire.
    La métrique VolumeIdleTime pour le débit comprend les métriques VolumeReadBytes et VolumeWriteBytes.
  2. Utilisez la formule suivante pour calculer le débit moyen atteint lorsque le volume est actif :
    Débit moyen estimé en octets/s = (Somme(VolumeReadBytes) + Somme(VolumeWriteBytes)) / (Période - Somme(VolumeIdleTime))
    Avec la métrique VolumeIdleTime pour les IOPS, il existe des métriques VolumeReadOps et VolumeWriteOps.
  3. Utilisez la formule suivante pour calculer le nombre moyen d'IOPS atteint lorsque le volume est actif :
    Nombre moyen estimé d'IOPS en ops/S = (Somme(VolumeReadOps) + Somme(VolumeWriteOps)) / (Période - Somme(VolumeIdleTime))

Utilisez CloudWatch pour obtenir un événement de micro-bursting

  1. Ouvrez la console CloudWatch.
  2. Choisissez Toutes les métriques.
  3. Utilisez l'ID du volume pour rechercher le volume concerné.
  4. Pour afficher les métriques de débit, choisissez Browse, puis ajoutez VolumeReadBytes, VolumeWriteBytes et VolumeIdleTime.
  5. Choisissez Graphed metrics.
  6. Pour Statistiques, sélectionnez Somme, et pour Période, choisissez 1 minute.
  7. Pour Ajouter une expression mathématique, choisissez Commencer par une expression vide.
  8. Dans les détails de l'expression, entrez les identifiants de graphiques pour la formule du débit moyen en octets/s estimé. Par exemple, (m1+m2) / (60 m 3).

Si la formule calcule une valeur supérieure au débit maximal pris en charge par le volume, c'est qu'il y a eu micro-bursting. Pour vérifier les métriques des IOPS, reprenez ces étapes et ajoutez les VolumeReadOps, VolumeWriteOps et VolumeIdleTime pour l'étape 4.

Confirmez le micro-bursting à l'aide d'un outil au niveau du système d'exploitation

Les formules précédentes n'identifient pas toujours le micro-bursting en temps réel. Cela est dû au fait que le volume peut être micro-bursting même si le VolumeIdleTime est faible.

Exemple : Votre volume atteint un niveau qui dépasse les limites. Le volume se réduit alors à un niveau d'activité très faible sans être complètement inactif pendant le reste de la période de collecte. La métrique VolumeIdleTime ne reflète pas la faible activité, même si un micro-bursting s'est produit.

Pour confirmer le micro-bursting, utilisez un outil au niveau du système d'exploitation disposant d'une granularité plus précise que CloudWatch.

Linux

Vous pouvez utiliser la commande iostat. Pour en savoir plus, consultez iostat (1) sur le site Web de la page de manuel Linux.

1.    Pour signaler les statistiques d'E/S pour tous vos volumes montés avec une granularité d'une seconde, exécutez la commande suivante :

iostat -xdmzt 1

Remarque : L'outil iostat fait partie du package sysstat. Si vous ne trouvez pas la commande iostat, exécutez la commande suivante pour installer sysstat sur les AMI Amazon Linux :

$ sudo yum install sysstat -y

2.    Pour savoir si le seuil de débit est atteint, vous devez examiner les débits rMo/s et wMo/s dans les résultats. Si le débit RMo/s + WMo/s est supérieur au débit maximal du volume, cela indique une micro-bursting.

Pour déterminer si vous atteignez votre seuil d'IOPS, examinez les valeurs r/s et w/s dans la sortie. Si r/s + w/s est supérieur aux IOPS maximales du volume, un micro-bursting se produit.

Windows

Exécutez la commande perfmon dans Windows Performance Monitor. Pour en savoir plus, consultez la section Déterminez vos exigences en matière d'IOPS et de débit.

Empêchez le micro-bursting en changeant la taille ou le type de votre volume pour qu'il s'adapte à vos applications

Modifiez le volume en un type et taille qui répond aux IOPS et au débit requis. Pour en savoir plus sur les types de volumes, leurs IOPS et leurs seuils de débit respectifs, consultez la section Types de volumes Amazon EBS. L'instance ne peut transmettre qu'un certain seuil d'IOPS et de débit à tous les volumes EBS associés.

C'est une bonne pratique de comparer vos volumes à votre charge de travail afin de vérifier quels types de volumes s'adaptent en toute sécurité à votre charge de travail dans un environnement de test. Pour en savoir plus, reportez-vous à Comparaison des volumes EBS.

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an