Mon instance EC2 est lente, ne répond pas ou est inaccessible. Cependant, ma consommation de processeur et de mémoire n'est pas élevée.

Date de la dernière mise à jour : 23/08/2019

J'ai des difficultés à me connecter à une instance Amazon Elastic Compute Cloud (Amazon EC2) qui a un volume racine Amazon Elastic Block Store (Amazon EBS) à usage général SSD (gp2). La connexion est lente ou a expiré, même si le processeur et la mémoire ne sont que partiellement utilisés.

Brève description

Les causes de ce problème peuvent être multiples. En effet, il peut être dû à un service externe qui prend en charge votre instance, au vidage du disque ou à la connectivité réseau. Cet article décrit une cause courante : l'épuisement des crédits de transmission en rafales E/S sur le volume racine gp2 . (gp2 est le lecteur de stockage par défaut pour les volumes racine dans la plupart des régions. Pour plus d'informations, consultez Types de volume Amazon EBS.)

Résolution

Vérifier le solde de crédits de transmission en rafales E/S

  1. Ouvrez la console Amazon EC2.
  2. Dans le volet de navigation, choisissez Instances, puis sélectionnez l'instance.
  3. Sur l'onglet Description choisissez le lien Root device (Périphérique racine), puis choisissez le lien EBS ID (ID EBS).
  4. Choisissez l'onglet Monitoring (Surveillance)pour le volume EBS, puis recherchez la métrique Burst Balance (Solde de transmission en rafales). Un solde de transmission en rafales de 0 % signifie que tous les crédits de transmission en rafales sont épuisés et que le volume ne peut pas dépasser son niveau de performance de base. Utilisez l'une des méthodes suivantes pour résoudre ce problème :

Estimez les besoins en IOPS, puis modifiez le volume pour prendre en charge la charge.

  1. Recherchez les métriques VolumeReadOps et VolumeWriteOps du volume EBS racine dans Amazon CloudWatch. Pour plus d'informations, consultez Recherche des métriques disponibles.
  2. Utilisez la statistique Sum de CloudWatch pour obtenir les niveaux de pointe de VolumeReadOps et VolumeWriteOps. Ensuite, ajoutez les deux nombres ensemble. Exemple:
    VolumeReadOps
    = 737 000
    VolumeWriteOps
    = 199 000
    Total = 936 000
  3. Pour estimer le nombre d'IOPS dont vous avez besoin, divisez le total de l'étape précédente par le nombre de secondes dans l'intervalle de mesure. Exemple :
    Intervalle de mesure = 5 minutes (300 secondes)
    936 000/300 = 3 120 IOPS

Les performances de référence pour les volumes gp2 évoluent de façon linéaire à 3 IOPS par Gio de taille du volume. Autrement dit, un volume avec 3 120 IOPS doit être mis à l' échelle jusqu'à 1 040 Gio pour améliorer les performances (3 120/3 = 1 040).

Vous pouvez également modifier votre volume de gp2 pour atteindre le nombre d'IOPS provisionnés SSD (io1). Grâce aux volumes io1, vous pouvez spécifier le nombre d'IOPS dont vous avez besoin sans augmenter la taille du volume. Pour plus d'informations sur l'utilisation des volumes io1 consultez Volumes IOPS provisionnés SSD (io1). Pour une comparaison des coûts des volumes gp2 et io1, consultez Tarification Amazon EBS.

Modifier la répartition de votre charge de travail

Lorsque vous avez plusieurs applications sur une instance EC2, elles rivalisent pour les IOPS du volume EBS racine. Au fil du temps, la demande en IOPS s'accroît parallèlement à l'augmentation de votre charge de travail. Pensez à utiliser plus de volumes EBS non racine pour vos applications afin d'améliorer les performances de votre instance. Vous pouvez aussi réserver le volume racine au système d'exploitation uniquement.

Si vous rencontrez toujours des difficultés pour vous connecter à votre instance EC2 après avoir modifié la taille du volume et la répartition de la charge de travail, consultez la page Résolution de la connexion à votre instance.