Diagnostic de forte charge sur un VPS | INTROSERV
EUR
european

EUR

usa

USD

French Fr
Ex. VAT Ex. VAT 0%

Diagnostic de forte charge sur un VPS

Utilisation de htop, top et iotop-c pour identifier le processus coupable

Lorsque votre VPS commence à ralentir – SSH semble retardé, les sites web répondent lentement, ou même taper dans le terminal semble lent – cela signifie généralement qu'une ou plusieurs ressources système (CPU, RAM ou disque I/O) sont poussées à leurs limites. Ce guide vous guide à travers un processus pratique, étape par étape, pour identifier ce qui se passe et quel processus est à blâmer, en utilisant trois outils Linux standard : htop, top et iotop-c.

Info

Le public est supposé être des administrateurs système débutants à intermédiaires familiers avec la ligne de commande et les concepts de base de Linux.

Étape un : Comprendre ce que signifie réellement "charge élevée"

Beaucoup de gens voient une "moyenne de charge" élevée et paniquent – mais toutes les charges élevées ne sont pas mauvaises. Clarifions cela.

Qu'est-ce que la "moyenne de charge" ?

La "moyenne de charge" vous indique combien de processus attendent le CPU à un moment donné. Elle est affichée sous forme de trois chiffres (pour les 1, 5 et 15 dernières minutes).

Exemple : uptime

Sortie :

17:41:25 up 2 days, 3:45, 1 user, load average: 2.34, 1.89, 1.42

Interprétation :

  • 2.34 – charge moyenne de la dernière minute
  • 1.89 – des 5 dernières minutes
  • 1.42 – des 15 dernières minutes

Maintenant, comparez ces chiffres à votre nombre de cœurs CPU. Si vous avez 2 cœurs :

  • Une charge autour de 2.0 signifie que les deux CPU sont pleinement utilisés – le système est occupé, mais ça va.
  • Une charge beaucoup plus élevée que 2.0 (comme 3 ou 4) signifie qu'il y a une file d'attente – trop de processus attendent.

Vérifiez combien de cœurs vous avez :

nproc

Si la charge ≫ nombre de cœurs pendant longtemps, il est temps d'enquêter.

Étape deux : Obtenez un aperçu rapide avec htop

htop est le moyen le plus simple de visualiser ce qui se passe à l'intérieur de votre VPS en temps réel.

Installer htop

Utilisez la commande adaptée à votre distribution Linux pour installer :

  • sudo apt install htop pour Ubuntu/Debian
  • sudo yum install htop pour CentOS/RHEL

Lancez-le

Lancez la commande htop. Vous verrez une interface colorée comme celle-ci :

interface htop montrant les barres CPU, les barres de mémoire et la liste des processus

Comprendre la disposition

  • Les barres supérieures montrent l'utilisation du CPU, de la mémoire et du swap en temps réel.
  • La moyenne de charge est visible dans le coin supérieur droit.
  • La liste des processus montre ce qui est en cours d'exécution et combien de CPU et de RAM chaque processus utilise.

Conseils de navigation

  • Trier par utilisation du CPU : appuyez sur F6, puis choisissez "PERCENT_CPU"
  • Trier par mémoire : appuyez sur F6, choisissez "PERCENT_MEM"
  • Vue en arbre (afficher les processus parent/enfant) : appuyez sur F5
  • Tuer un processus : mettez-le en surbrillance – appuyez sur F9 – choisissez le signal (par défaut est 15, "terminate")
  • Rechercher un processus : appuyez sur F3, tapez une partie de son nom (par exemple, "nginx")

Ce qu'il faut rechercher

  • Processus avec un pourcentage élevé de CPU – ceux-ci consomment le plus de temps CPU.
  • Processus avec un pourcentage élevé de MEM – ceux-ci consomment de la RAM et peuvent forcer le système à échanger.
  • Si un processus réapparaît en haut toutes les quelques secondes, il pourrait s'agir d'un script en boucle ou d'un service redémarrant.

Exemple

Lancez htop. Si vous voyez quelque chose comme :

htop montrant le processus msty-local-studio en haut consommant beaucoup de CPU et de mémoire

Il est clair que msty-local-studio avec PID 6346 utilise plus de CPU et de mémoire que tout le reste. Vous savez maintenant où concentrer vos prochaines vérifications.

Étape trois : Vérifiez avec top

Bien que htop soit convivial, top est disponible sur chaque système Linux – aucune installation requise. C'est un bon recours lorsque vous n'avez qu'un accès SSH à un environnement minimal.

Lancez-le

Lancez la commande top. Vous verrez une interface comme celle-ci :

interface de la commande top montrant le résumé du système et la liste des processus

Points clés

  • La ligne %Cpu(s) montre où va le temps CPU :
    • us – processus utilisateur
    • sy – tâches système/noyau
    • wa – attente d'I/O (disque)
  • %wa (attente I/O) au-dessus de 10–15% signifie souvent un goulot d'étranglement du disque.
  • La moyenne de charge et le résumé des tâches vous indiquent à quel point le système est occupé.

Raccourcis clavier utiles

  • Shift + P – trier par CPU
  • Shift + M – trier par mémoire
  • Shift + T – trier par temps d'exécution du processus
  • 1 – basculer l'utilisation du CPU par cœur
  • k – tuer un processus (entrez le PID lorsqu'on vous le demande)
  • q – quitter top

Quand utiliser top

Utilisez top lorsque :

  • htop n'est pas installé (comme sur un système de secours ou un conteneur Docker).
  • Vous voulez un outil léger qui montre l'équilibre CPU vs. I/O en temps réel.

Étape quatre : Si le CPU et la RAM semblent corrects – Vérifiez le disque I/O avec iotop-c

Parfois, tout semble normal – l'utilisation du CPU n'est pas élevée, la mémoire est correcte – mais le système semble gelé. Les commandes comme ls ou cd se bloquent pendant des secondes, et la moyenne de charge est toujours élevée. C'est un signe classique d'attente I/O, où le CPU est inactif mais attend que les opérations de disque se terminent.

Installer iotop-c

Utilisez la commande adaptée à votre distribution Linux pour installer :

  • sudo apt install iotop-c pour Ubuntu/Debian
  • sudo yum install iotop-c pour CentOS/RHEL

Activez la surveillance I/O en utilisant la commande :

sudo sysctl kernel.task_delayacct=1

Lancez-le

Lancez la commande en tant qu'utilisateur root : sudo iotop-c. Vous verrez une interface comme celle-ci :

interface iotop-c montrant l'activité I/O par processus

Interprétation

  • La colonne IO montre combien de temps chaque processus est bloqué en attente d'I/O.
  • Un IO élevé (par exemple, 90–100%) – ce processus attend fortement sur le disque.
  • Vérifiez si vous exécutez des sauvegardes, des importations de données volumineuses ou des travaux de compression.

Causes courantes de surcharge I/O

  • Base de données (mysqld, postgres) exécutant une requête volumineuse.
  • Scripts de sauvegarde (rsync, tar, dd) copiant des fichiers massifs.
  • Fichiers journaux croissant de manière incontrôlée dans /var/log.
  • Swap mal configuré – si le système commence à échanger fortement, il surcharge le disque.

Étape cinq : Corréler ce que vous avez trouvé

Maintenant que vous avez utilisé htop, top et iotop-c, il est temps de rassembler le puzzle.

Symptôme Cause probable Outil à vérifier
Utilisation élevée du CPU Script bogué, processus lourd htop, top
Utilisation élevée de la mémoire Fuite de mémoire, trop de travailleurs htop
Attente I/O élevée, réponse lente Goulot d'étranglement du disque, échange iotop-c, top
Charge élevée mais CPU inactif I/O ou épuisement de la mémoire top, iotop-c

Vérifiez également les journaux système pour les avertissements :

journalctl -xe

ou :

tail -n 50 /var/log/syslog

Vous pourriez trouver des messages sur des erreurs du noyau, des montages échoués ou des processus tués par le tueur OOM (Out Of Memory).

Étape six : Agir

Une fois que vous avez identifié le coupable, décidez de la suite à donner.

Redémarrer ou arrêter le processus

sudo systemctl restart <service>

ou, si nécessaire :

sudo kill -9 <pid>

Libérer de l'espace disque

Si l'utilisation du disque est élevée, utilisez df -h pour déterminer quelle partition nettoyer, ou sudo du -sh /var/log/* pour déterminer quels journaux nettoyer.

Réduire la charge des processus

  • Limitez les tâches cron pour qu'elles ne s'exécutent pas en même temps.
  • Ajustez les limites de requêtes de base de données ou de mise en cache.
  • Réduisez le nombre de travailleurs dans Nginx, Apache ou Gunicorn.

Si rien n'aide – augmentez les ressources

Si vous atteignez constamment les limites même avec des charges de travail optimisées, il est temps d'ajouter plus de CPU, de RAM, ou de passer à un stockage plus rapide (par exemple, SSD à NVMe).

Étape sept : Prévention et surveillance continue

Vous ne devriez pas avoir à vous connecter manuellement et vérifier la charge à chaque fois. Vous pouvez configurer la surveillance et les alertes avec des outils comme : glances, netdata, prometheus, etc.

Commandes de référence rapide

Objectif Commande
Afficher la moyenne de charge uptime
Voir la charge CPU/mémoire visuellement htop
Vue minimale des processus top
Surveiller l'activité du disque iotop-c
Voir les journaux journalctl -xe

Exemple réel : Le script de sauvegarde incontrôlé

Mettons tout ensemble avec un scénario réel.

Situation

  • VPS avec 2 cœurs CPU et stockage SSD
  • Soudainement très lent – latence SSH, pages web en timeout
  • uptime montre : moyenne de charge : 8.5, 7.3, 6.9 – beaucoup trop élevé pour 2 cœurs.

Enquête

  1. Lancez htop : l'utilisation du CPU est faible – seulement 10–15%. L'utilisation de la mémoire est correcte. Donc pas lié au CPU.
  2. Lancez top : %wa = 40% – système en attente sur l'I/O du disque.
  3. Lancez iotop-c :
    iotop-c montrant un script de sauvegarde en haut avec une utilisation élevée de l'I/O

    Bingo – un script de sauvegarde compressant un énorme répertoire directement sur le disque.

Solution

  • Arrêtez ou reprogrammez la sauvegarde pour qu'elle s'exécute la nuit.
  • Compressez dans /tmp (en mémoire) avant de déplacer sur le disque.
  • Utilisez ionice pour réduire sa priorité disque.

Résultat

Les performances du VPS reviennent à la normale instantanément.

Réflexions finales

Diagnostiquer une charge élevée n'est pas de la magie – il s'agit de vérifier systématiquement le CPU, la mémoire et le disque un par un. Utilisez vos outils comme un détective :

  1. Le CPU est-il saturé ?htop, top
  2. La mémoire est-elle pleine ou en échange ?htop, top
  3. Le disque est-il surchargé ?iotop-c
  4. Les journaux le confirment-ils ?journalctl

Une fois que vous avez identifié le processus coupable, vous pouvez décider : l'ajuster, le tuer, ou mieux le planifier. Avec le temps, vous commencerez à reconnaître des schémas – un processus à charge élevée, trop de tâches cron, ou une application web mal configurée. C'est alors que vous arrêtez de combattre les incendies et commencez à gérer comme un véritable administrateur système.

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA