Comment résoudre les problèmes liés à l'utilisation élevée du processeur sur une instance Linux EC2 ?
Je souhaite résoudre les problèmes liés à l’utilisation élevée du processeur ou le temps de vol élevé dans mon instance Linux Amazon Elastic Compute Cloud (Amazon EC2).
Brève description
Une utilisation élevée du processeur peut être due à une activité au niveau de l'application, à des instances EC2 sous-provisionnées ou à des incohérences de surveillance. Pour résoudre les problèmes liés à l'utilisation élevée du processeur, consultez les métriques de temps de vol de votre environnement. Le temps de vol du processeur correspond au temps pendant lequel une instance est prête mais ne peut pas continuer, car les ressources physiques sous-jacentes sont allouées ailleurs. Un temps de vol élevé affecte les performances des applications et entraîne des ralentissements, des délais d'attente et un comportement incohérent.
Le temps de vol est élevé pour les raisons suivantes :
- Une instance voisine sur le même hôte physique sous-jacent fait face à un grand nombre de demandes du processeur.
- L'hyperviseur d'instance est surchargé de requêtes.
- Le solde créditeur du processeur pour une instance extensible est épuisé.
Remarque : vous pouvez observer des différences entre les métriques Amazon CloudWatch et les métriques d’outils au niveau de l'instance. Cela se produit parce que CloudWatch collecte des métriques au niveau de l'hyperviseur, mais que les outils d'instance les mesurent depuis le système d'exploitation client. CloudWatch effectue également des échantillonnages à intervalles de 1 à 5 minutes, lorsque les outils d'instance peuvent fournir des données seconde par seconde. Les méthodes de synchronisation horaire et de calcul de l'utilisation du processeur peuvent également entraîner des divergences.
Résolution
Pour résoudre les problèmes liés à l'utilisation élevée du processeur sur votre instance Linux, effectuez les actions de dépannage suivantes.
Mesurer le temps de vol du processeur de votre configuration
Pour afficher le temps de vol de votre configuration, exécutez la commande suivante :
top
Exemple de sortie :
top - 14:23:45 up 7 days, 2:03, 1 user, load average: 0.45, 0.50, 0.45 Tasks: 105 total, 1 running, 104 sleeping, 0 stopped, 0 zombie %Cpu(s): 5.3 us, 2.1 sy, 0.0 ni, 85.6 id, 1.2 wa, 0.0 hi, 0.3 si, 5.5 st MiB Mem : 3949.2 total, 146.7 free, 1367.8 used, 2434.7 buff/cache MiB Swap: 0.0 total, 0.0 free, 0.0 used. 2312.8 avail Mem
Dans la sortie, vérifiez la valeur st pour obtenir le pourcentage de temps de vol du processeur. Dans l'exemple précédent, le temps de vol représente 5,5 % du temps CPU total. Il est recommandé de maintenir le temps de vol en dessous de 5 %. Si votre temps de vol est constamment supérieur à 10 %, vérifiez que votre instance ne présente pas de problèmes de configuration.
Pour les charges de travail nécessitant des ressources dédiées, il est recommandé d'utiliser un hôte dédié Amazon EC2.
Utiliser CloudWatch pour surveiller votre processeur
Utilisez CloudWatch pour surveiller les performances de votre instance. Vérifiez la métrique CPUUtilization de votre instance, ainsi que les métriques CPUCreditUsage and CPUCreditBalance pour les instances t2 et t3.
S'il existe une différence entre les métriques CloudWatch et ce que vous voyez dans l'instance, vérifiez que vous avez correctement configuré l'agent CloudWatch. Vérifiez la présence d'erreurs dans /opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log.
Remarque : CloudWatch ne fournit pas de métriques sur le temps de vol par défaut. À la place, vous devez configurer l'agent CloudWatch pour ajouter des métriques personnalisées.
Utiliser des outils au niveau de l'instance pour surveiller l'instance
Pour une interface plus conviviale permettant de visualiser le temps de vol de votre configuration, utilisez htop au lieu de la commande top. Pour télécharger htop, consultez la page htop-dev/htop sur le site Web de GitHub.
Pour afficher l'utilisation détaillée des ressources au niveau du système, telles que la mémoire, la pagination, les I/O et le processeur au fil du temps, exécutez la commande suivante :
vmstat
Exemple de sortie :
$ vmstat 1 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 150272 97545 2394124 0 0 0 5 1 2 5 2 86 1 6 0 0 0 150272 97545 2394124 0 0 0 0 435 625 4 2 88 0 6
Remarque : pour consulter le temps de vol, vérifiez la colonne st.
Pour consulter les données historiques relatives à vos ressources, exécutez la commande suivante :
sar
Exemple de sortie :
$ sar -P ALL 1 3 Linux 5.4.0-1045-aws (ip-10-0-1-100) 04/22/2025 _x86_64_ (2 CPU) 4:25:00 CPU %user %nice %system %iowait %steal %idle 14:25:01 all 4.50 0.00 2.00 1.00 5.50 87.00 14:25:01 0 4.00 0.00 2.00 1.00 6.00 87.00 14:25:01 1 5.00 0.00 2.00 1.00 5.00 87.00
Remarque : vous pouvez configurer sar pour collecter les métriques du CPU à intervalles réguliers. Pour plus d'informations, consultez la page La commande sar sur le site Web de Red Hat.
Vérifier le solde de votre type d'instance extensible
Les différents types d'instances sont plus sensibles aux problèmes de vol de temps. Par exemple, une utilisation prolongée du processeur peut épuiser les crédits du processeur et réduire les performances sur des types d'instances évolutifs tels que t2 et t3.
Si le solde créditeur de votre type d'instance extensible est constamment bas ou égal à 0, modifiez le type d'instance pour une taille plus grande. Vous pouvez également modifier le type d'instance à une instance à capacité non extensible, telle qu'une série m, c ou r.
Optimiser la configuration de votre instance ou de votre application
Si un processus spécifique utilise un processeur élevé, effectuez les actions suivantes :
- Déterminez si l'utilisation élevée du processeur est un comportement attendu.
- Recherchez dans vos journaux d’application des erreurs ou des comportements inattendus.
- Redémarrez l'application ou le service.
Si l'utilisation du processeur correspond au comportement attendu mais reste trop élevée, réglez votre application pour en améliorer l'efficacité. Par exemple, il est recommandé de déplacer des charges de travail gourmandes en calcul vers une instance ou un conteneur différent.
Gérer votre trafic et vos modèles de charge
Si l'utilisation élevée du processeur est un problème récurrent en raison du trafic ou des modèles de charge, procédez comme suit :
- Configurez les groupes Amazon EC2 Auto Scaling pour gérer automatiquement la mise à l’échelle.
- Utilisez Elastic Load Balancing (ELB) pour répartir le trafic.
- Utilisez des conteneurs et des applications sans serveur pour répartir les charges de travail en services de plus petite taille.
Informations connexes
- Sujets
- Compute
- Balises
- LinuxAmazon EC2
- Langue
- Français

Contenus pertinents
- demandé il y a 3 ans
- demandé il y a 2 ans
- Réponse acceptéedemandé il y a 2 ans
- demandé il y a 2 ans