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.
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 htoppour Ubuntu/Debiansudo yum install htoppour CentOS/RHEL
Lancez-le
Lancez la commande htop. Vous verrez une interface colorée comme celle-ci :

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 :

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 :

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 :
htopn'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-cpour Ubuntu/Debiansudo yum install iotop-cpour 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 :

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
uptimemontre : moyenne de charge : 8.5, 7.3, 6.9 – beaucoup trop élevé pour 2 cœurs.
Enquête
- Lancez
htop: l'utilisation du CPU est faible – seulement 10–15%. L'utilisation de la mémoire est correcte. Donc pas lié au CPU. - Lancez
top: %wa = 40% – système en attente sur l'I/O du disque. - Lancez
iotop-c:
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
ionicepour 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 :
- Le CPU est-il saturé ? –
htop,top - La mémoire est-elle pleine ou en échange ? –
htop,top - Le disque est-il surchargé ? –
iotop-c - 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.