Comment résoudre les problèmes liés à une instance Linux EC2 dont le contrôle statut échoue en raison d'une surutilisation des ressources ?

Lecture de 10 minute(s)
0

Le contrôle de statut de mon instance Linux Amazon Elastic Compute Cloud (Amazon EC2) a échoué en raison d'une surutilisation de ses ressources.

Brève description

Voici trois des raisons les plus courantes pour lesquelles votre contrôle de santé peut échouer en raison d'une utilisation excessive des ressources :

  • L'utilisation du processeur de votre instance a atteint près de 100 % et la capacité de calcul restante de l'instance était insuffisante pour permettre au noyau de fonctionner.
  • Le périphérique racine est plein à 100 % et empêche les autres processus de se terminer ou de démarrer.
  • Les processus exécutés sur l'instance ont utilisé toute sa mémoire, empêchant le noyau de s'exécuter.

Résolution

Arrêter et démarrer l’instance

Avertissement :

  • Les données stockées dans les volumes de stockage d'instance sont perdues lorsque l'instance est arrêtée. Assurez-vous d'enregistrer une sauvegarde des données avant d'arrêter l'instance. Contrairement aux volumes basés sur EBS, les volumes de stockage d'instance sont éphémères et ne prennent pas en charge la persistance des données. Pour en savoir plus, consultez la rubrique Que se passe-t-il lorsque vous arrêtez une instance ?
  • Les opérations d’arrêt et de démarrage sur l’instance obligent le noyau à arrêter tous les processus en cours d’exécution. Il s'agit d'une solution temporaire permettant de restituer des ressources au système d'exploitation. Si vous ne vous attaquez pas à la cause première du problème, la surutilisation persiste.
  • L'adresse IPv4 publique statique qu'Amazon EC2 a automatiquement attribuée à l'instance lors du lancement ou du démarrage change après l'arrêt et le démarrage. Pour conserver une adresse IPv4 publique qui ne change pas lorsque l’instance est arrêtée, utilisez une adresse IP Elastic.

Pour plus d'informations, consultez la rubrique Arrêter et démarrer vos instances.

Vérifiez les statistiques d'utilisation du processeur Amazon CloudWatch

Afficher les métriques CloudWatch de l’instance. Si le taux d'utilisation du processeur est égal ou proche de 100 %, utilisez les options suivantes pour résoudre le problème :

**Remarque :**Si vous recevez des erreurs lors de l'exécution des commandes de l'AWS CLI, assurez-vous que vous utilisez la version la plus récente de l'AWS CLI.

Vérifiez que le journal système de l’instance ne contient pas d’erreurs

Consultez le journal système pour voir s'il n'y a plus d'espace sur l'appareil ou ** si la mémoire** est insuffisante.

Erreur indiquant un manque d'espace sur l'appareil

Si une erreur similaire à « OSError : \ [Error 28 ] Il ne reste plus d'espace sur le périphérique '/var/lib/' » apparaît dans le journal système de l'instance, cela signifie que le système de fichiers contenant le dossier répertorié est plein. Dans cet exemple, /var/lib est plein.

Vous pouvez libérer de l'espace sur le système de fichiers en utilisant l'une des méthodes suivantes :

Méthode 1 : Utiliser la console série EC2 pour les instances Linux

Si vous avez activé l'EC2 Serial Console pour les instances Linux, vous pouvez l'utiliser pour résoudre les problèmes liés aux types d'instances Nitro et aux instances bare metal pris en charge. La console série vous aide à résoudre les problèmes de démarrage, de configuration réseau et de configuration SSH. La console série se connecte à votre instance sans avoir besoin d'une connexion réseau fonctionnelle. Vous pouvez accéder à la console série à l'aide de la console Amazon EC2 ou de l'interface de ligne de commande AWS.

Si vous n’avez jamais utilisé l’EC2 Serial Console, assurez-vous de vérifier les prérequis et de configurer l’accès avant d’essayer de vous connecter. Si votre instance est inaccessible et que vous n'avez pas configuré l'accès à la console série, suivez les instructions de la méthode 2 : Utilisez une instance de secours. Pour plus d'informations sur la configuration de l’EC2 Serial Console, consultez la rubrique Configurer l'accès à l’EC2 Serial Console.

Méthode 2 : Utilisez une instance de secours

Avertissement : La procédure suivante nécessite l’arrêt de l’instance. Les données stockées dans les volumes de stockage d'instance sont perdues lorsque l'instance est arrêtée. Assurez-vous d'enregistrer une sauvegarde des données avant d'arrêter l'instance. Contrairement aux volumes basés sur EBS, les volumes de stockage d'instance sont éphémères et ne prennent pas en charge la persistance des données. Pour plus d'informations, consultez la rubrique Que se passe-t-il lorsque vous arrêtez une instance ?

  1. Lancez une nouvelle instance EC2 dans votre cloud privé virtuel (VPC). Utilisez la même Amazon Machine Image (AMI) et la même zone de disponibilité que l'instance défectueuse. La nouvelle instance devient votre instance de secours.

Vous pouvez également utiliser une instance existante à laquelle vous pouvez accéder. L'instance existante doit utiliser la même AMI et se trouver dans la même zone de disponibilité que votre instance défectueuse

2.    Arrêtez l'instance défaillante.

3.    Détachez le volume racine Amazon Elastic Block Store (Amazon EBS) (/dev/xvda ou /dev/sda1) de votre instance endommagée. Notez le nom du périphérique (/dev/xvda ou /dev/sda1) de votre volume racine.

  1. Attachez le volume EBS en tant que périphérique secondaire (/dev/sdf) à l'instance de secours.

  2. Connectez-vous à votre instance de secours via SSH.

  3. Créez un répertoire de points de montage (/rescue) pour le nouveau volume attaché à l'instance de secours

$ sudo mkdir /rescue
  1. Montez le volume dans le répertoire que vous avez créé à l'étape 6.
$ sudo mount /dev/xvdf1 /rescue

Le périphérique (/dev/xvdf1) peut être attaché à l'instance de secours avec un nom de périphérique différent. Utilisez la commande lsblk pour afficher vos périphériques de disque disponibles ainsi que leurs points de montage afin de déterminer les bons noms de périphériques.

Remarque : Il se peut que vous receviez un message d’erreur semblable au suivant :

« ... mauvais type de fs, mauvaise option, mauvais superbloc sur /dev/nvme2n1, page de code ou programme auxiliaire manquant, ou autre erreur. »

L'erreur précédente est due à un conflit d'UUID avec le système de fichiers XFS. Si vous recevez ce message d’erreur, consultez la section le montage de mon volume Amazon EBS échoue-t-il ?

8.    Exécutez la commande du -h pour déterminer quels fichiers occupent le plus d’espace.

du -shcm /rescue/var/lib/* |sort -n

9.    Supprimez les fichiers selon vos besoins pour libérer de l’espace.

10.    Exécutez la commande unmount pour démonter le périphérique secondaire sur votre instance de secours.

$ sudo umount /rescue

Si l'opération de démontage échoue, vous devrez peut-être arrêter ou redémarrer l'instance de secours pour obtenir un démontage correct.

  1. Détachez le volume secondaire (/dev/sdf) de l'instance de secours. Ensuite, associez-le à l’instance d’origine en tant que /dev/xvda (volume racine).

12.    Démarrez l’instance, puis vérifiez si elle est réceptive.

Vous pouvez redimensionner le volume EBS racine en procédant comme suit :

1.    Demandez la modification de la taille du volume EBS.

2.    Étendez un système de fichiers Linux après avoir redimensionné un volume à l’aide d’une instance de secours

**Erreur de mémoire insuffisante **

Si l'erreur « Out of memory : kill process » (mémoire insuffisante : interrompre le processus) apparaît dans le journal système de l'instance, cela signifie que la mémoire de l'instance est épuisée. Lorsque la mémoire est épuisée, le noyau n'a pas assez de mémoire pour fonctionner et d'autres processus sont interrompus pour libérer de la mémoire.

Pour plus d'informations sur la résolution des problèmes de saturation de la mémoire (OOM), consultez la section Out of memory:kill process (mémoire insuffisante : interrompre le processus).

Pour consulter les journaux d’erreurs de mémoire (Out of Memory), procédez comme indiqué dans la section **Méthode 2. Utilisez une instance de secours ** à l'étape 7. Montez le volume.

Utilisez ensuite les commandes suivantes pour rechercher dans les journaux les alertes de manque de mémoire, en fonction de votre distribution Linux :

Amazon Linux 1 et Amazon Linux 2

sudo grep -i -r 'out of memory' /var/log/

Amazon Linux 2023

$ sudo journalctl -p err | grep -i "out of memory"

-ou-

$ sudo dmesg | grep -i "out of memory"

Pour plus d'informations sur la résolution des problèmes de saturation de mémoire (OOM), consultez la rubrique Out of memory:kill process (mémoire insuffisante : interrompre le processus).

Échec de l’allocation de page

L'échec de l'allocation de page se produit lorsque l'allocateur de mémoire du noyau ne répond pas à la demande d'allocation. Dans ce cas, un message d'échec d'allocation de page est ajouté au journal système.

Pour résoudre ce problème de manque de mémoire, envisagez de mettre à niveau l'instance vers un type d'instance plus important. Ou, pour les instances qui utilisent des volumes de stockage d'instance éphémères, ajoutez un stockage de swap à l'instance pour réduire la pression sur la mémoire.

Pour en savoir plus sur la configuration de l’espace d’échange, consultez les sections suivantes :

Remarque : L'instance utilise l'espace d’échange lorsque la quantité de RAM est pleine. Vous pouvez utiliser l'espace d’échange pour les instances qui disposent d'une petite quantité de RAM, mais cela ne remplace pas une plus grande quantité de RAM. L'espace d'échange étant situé sur le disque dur de l'instance, les performances sont plus lentes que celles de la RAM réelle. Pour bénéficier d’une mémoire plus importante ou plus rapide, pensez à augmenter la taille de votre instance.

Pour plus d'informations sur les échecs d'allocation de page, consultez la rubrique Quels sont les échecs d'allocation de page sur le site web de Red Hat.

Informations connexes

Pourquoi mon instance Linux EC2 est-elle injoignable et échoue-t-elle à ses contrôles de statut ?

Quelles sont les étapes à suivre avant de modifier le type d'instance de mon instance Linux EC2 ?

Comment diagnostiquer une utilisation élevée du CPU sur une instance Windows EC2 ?

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 10 mois