Pourquoi, bien que mon instance EC2 soit lente, ne réponde pas ou soit inaccessible, l'utilisation de mon processeur et de ma mémoire n'est pas élevée ?

Dernière mise à jour: 19-01-2021

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 basé SSD (gp2). La connexion est lente ou expire, 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. (Dans la plupart des régions gp2 est le lecteur de stockage par défaut pour les volumes racine. Pour plus d'informations, consultez Types de volume Amazon EBS.)

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, sélectionnez Instances, puis sélectionnez l'instance.
  3. Sous l'onglet Stockage, sélectionnez l'ID de volume du périphérique racine.
  4. Sélectionnez l'onglet Surveillancepour le volume EBS, puis recherchez la métrique 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 de 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 remplacer votre volume gp2 par SSD IOPS provisionnés (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 SSD IOPS provisionnés (io1 et io2). 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 disposez de plusieurs applications sur une instance EC2, elles entrent en concurrence 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 également envisager de 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 des problèmes de connexion à votre instance.