Tous les produits
Search
Centre de documentation

:Dépanner une utilisation élevée du processeur ou une charge système importante sur une instance Linux

Dernière mise à jour :Aug 18, 2026

Description du problème

Une utilisation élevée du processeur ou une charge système importante peut entraîner les symptômes suivants :

  1. Problèmes liés aux services applicatifs

    • Les connexions SSH à distance sont lentes ou ne répondent pas, et peuvent échouer dans les cas graves.

    • Le temps de réponse de votre site web ou de votre application augmente considérablement et les pages se chargent lentement.

    • Les requêtes expirent fréquemment, les appels API échouent et la capacité de traitement globale de vos services est sensiblement réduite.

  2. Anomalies des ressources système

    • L'utilisation du processeur de l'instance dépasse constamment 80 %, voire approche les 100 %.

    • La charge système (load average) est systématiquement supérieure au nombre de cœurs logiques du processeur. Par exemple, la charge moyenne est supérieure à 4 sur une instance à 4 cœurs.

    • CloudMonitor a déclenché des alertes concernant une charge système élevée par SMS ou par e-mail.

Causes

  • Processus gourmands en processeur : ce problème est souvent causé par une logique d'application défectueuse, telle que des boucles infinies, des tâches de calcul complexes ou des requêtes à forte concurrence, qui peuvent inclure à la fois un trafic légitime et des attaques malveillantes.

  • Goulot d'étranglement des performances d'E/S : des opérations de lecture/écriture fréquentes sur le disque ou des performances de stockage insuffisantes obligent les processus à attendre longtemps les E/S, ce qui augmente la charge moyenne du système.

  • Appels noyau ou système : des commutations de contexte fréquentes, des tâches noyau ou des problèmes de pilote entraînent une utilisation élevée du processeur en mode noyau.

  • Programmes anormaux ou malveillants : l'instance est infectée par un logiciel de minage de cryptomonnaies, un cheval de Troie ou un rootkit avec des processus cachés qui consomment une grande quantité de ressources informatiques.

Résolution

Utilisez l'outil top pour identifier la cause principale de l'utilisation élevée du processeur ou de la charge système, telle que l'espace utilisateur, l'espace noyau ou l'attente d'E/S. Ensuite, utilisez des outils comme perf, iotop ou vmstat pour analyser plus en détail et résoudre le problème.

Étape 1 : Identifier le goulot d'étranglement du processeur

  1. Connectez-vous à une instance ECS à l'aide d'une connexion VNC.

    1. Accédez à Console ECS - Instances. Dans le coin supérieur gauche, sélectionnez la région et le groupe de ressources de l'instance cible.

    2. Accédez à la page de détails de l'instance cible. Cliquez sur Connect et sélectionnez VNC. Saisissez vos identifiants pour vous connecter à l'instance ECS.

  2. Vérifiez la charge système et l'activité des processus.

    sudo top
  3. Identifiez la cause du problème.

    Dans l'interface interactive top, appuyez sur P pour trier les processus par utilisation du processeur par ordre décroissant. Identifiez l'ID de processus (PID) et le nom de commande (COMMAND) du processus qui consomme le plus de processeur.

    • Si un processus applicatif tel que java, python ou php-fpm utilise constamment plus de 80 % du processeur, consultez la section Gérer les processus applicatifs occupés.

    • Si la valeur d'attente d'E/S (wa) dans la ligne %Cpu(s) est constamment supérieure à 20 %, tandis que les valeurs de l'espace utilisateur (us) et de l'espace noyau (sy) sont faibles, et que la charge moyenne est bien supérieure au nombre de cœurs de processeur, cela indique que le processeur passe beaucoup de temps inactif en attendant les E/S disque. Dans ce cas, consultez la section Gérer les goulots d'étranglement des E/S disque.

      Lorsqu'un processus attend la fin d'une opération d'E/S disque, il entre dans un état de sommeil ininterruptible (état D) et ne peut pas être terminé. Un grand nombre de processus dans l'état D indique une réponse lente du disque, ce qui oblige le processeur à attendre et augmente la charge système.
    • Si la valeur système (sy) dans la ligne %Cpu(s) est constamment supérieure à 30 %, cela indique généralement que le noyau exécute fréquemment des appels système ou gère des interruptions. Dans ce cas, consultez la section Gérer les appels noyau ou système occupés.

    • Si la valeur softirq (si) dans la ligne %Cpu(s) est constamment supérieure à 15 %, cela indique un trafic réseau élevé. Dans ce cas, consultez la section Gérer les interruptions réseau occupées.

Étape 2 : Analyser et résoudre le problème

Processus applicatifs occupés

  • Analysez et optimisez votre code :

    Utilisez des outils de profilage des performances pour localiser les points chauds de votre code.

    • Applications Java : Utilisez jstack <PID> pour exporter les piles de threads. Recherchez les threads dans l'état RUNNABLE et vérifiez si la pile d'appels reste bloquée dans une méthode spécifique pendant une longue période.

    • Applications C/C++ : Utilisez perf top -p <PID> pour afficher les symboles de fonction spécifiques qui consomment le plus de processeur.

    Sur la base de l'analyse, optimisez les algorithmes, corrigez les boucles infinies ou réduisez les calculs inutiles.

  • Atténuez les attaques au niveau de l'application : Si vous subissez une attaque CC malveillante au niveau de l'application, caractérisée par un grand nombre de requêtes HTTP inhabituelles, déployez un pare-feu d'application web (WAF) pour vous protéger. Pour plus d'informations, consultez la rubrique Protéger une instance ECS contre les attaques CC à l'aide de WAF.

  • Mettez à niveau les ressources : Si le goulot d'étranglement est causé par une croissance normale de l'activité, mettez à niveau le type d'instance.

Goulots d'étranglement des E/S disque

  1. Identifiez le processus qui provoque des E/S élevées : Dépanner une charge d'E/S disque élevée sur un système Linux.

  2. Vérifiez s'il y a une accumulation de processus dans l'état D :

    sudo ps -axjf | grep " D"
    • Optimisation de l'application : réduisez les niveaux de journalisation et ajoutez des index aux requêtes de base de données pour diminuer les opérations de lecture/écriture sur le disque.

    • Mise à niveau du stockage : mettez à niveau la catégorie de disque cloud (par exemple, passer d'ESSD PL1 à ESSD PL2/PL3) pour améliorer les IOPS et le débit. Les IOPS maximales d'un disque cloud sont également limitées par le type d'instance attaché. Si la limite d'IOPS du type d'instance est inférieure à la capacité du disque cloud, vous devez mettre à niveau le type d'instance.

    • Redémarrage du système : un redémarrage du système peut effacer une accumulation de processus dans l'état D.

Appels noyau ou système occupés

  1. Vérifiez les commutations de contexte : exécutez la commande vmstat 1 et observez la valeur dans la colonne cs (commutation de contexte). Si cette valeur dépasse constamment 100 000, le taux de commutations de contexte est excessif. Vérifiez si votre application crée et détruit trop de threads.

  2. Vérifiez les tâches noyau : si le processus kswapd0 affiche une utilisation élevée du processeur, la mémoire physique est insuffisante et le noyau récupère fréquemment de la mémoire. Pour résoudre ce problème, mettez à niveau le type d'instance.

    Lorsque la mémoire physique est faible, kswapd0 analyse, récupère et permute fréquemment les pages mémoire. Ces tâches intensives en calcul consomment d'importantes ressources processeur et provoquent une utilisation élevée du processeur.

Interruptions réseau occupées

  1. Analysez le trafic : utilisez des outils tels que iftop ou iptraf-ng pour analyser la source et le type du trafic réseau.

  2. Vérifiez la configuration : pour des charges de travail réseau élevées, activez la file d'attente multiple pour la carte d'interface réseau (NIC) afin de répartir les interruptions sur plusieurs cœurs de processeur.

  3. Répondez aux attaques réseau :

Étapes suivantes

  • Configurer la surveillance et les alertes : définissez des seuils d'alerte raisonnables pour des métriques telles que l'utilisation du processeur, la charge système et l'attente d'E/S afin de recevoir des avertissements précoces. Pour effectuer une analyse historique des métriques du système Linux, utilisez l'outil atop pour surveiller les métriques du système Linux.

  • Effectuez des contrôles de sécurité réguliers : utilisez Security Center pour effectuer périodiquement des analyses de vulnérabilités, des analyses antivirus et des vérifications de référence sur vos hôtes afin de corriger les risques de sécurité potentiels.

  • Effectuez des révisions et des optimisations régulières : examinez périodiquement les performances et le code de vos systèmes et applications pour identifier et résoudre les goulots d'étranglement potentiels.

  • Planification de la capacité : planifiez la capacité des ressources en fonction des tendances de croissance de l'activité afin de garantir que votre système puisse gérer la charge future.