Contactez-nous

Visualiser l'utilisation des ressources : `top` ou `htop`, `df`, `du`, `free`

Apprenez à utiliser les commandes top, htop, df, du et free pour visualiser l'utilisation des ressources CPU, mémoire, disque et processus sur votre système Linux. Un guide essentiel pour le diagnostic.

Comprendre et surveiller les performances de votre système Linux

Savoir comment votre système Linux utilise ses ressources est fondamental, que ce soit pour diagnostiquer des lenteurs, anticiper des besoins en capacité, ou simplement par curiosité. Linux offre une panoplie d'outils en ligne de commande pour visualiser en temps réel ou de manière ponctuelle l'utilisation du processeur (CPU), de la mémoire vive (RAM), de l'espace disque, et pour inspecter les processus en cours. Ce sous-chapitre se concentre sur quelques-unes des commandes les plus utiles et courantes : `top` et son alternative améliorée `htop` pour une vue dynamique des processus et de l'utilisation du CPU/mémoire, `df` pour l'espace disque des systèmes de fichiers, `du` pour l'espace occupé par des fichiers ou répertoires spécifiques, et `free` pour un aperçu de l'utilisation de la mémoire.

Ces outils vous fourniront des informations précieuses pour maintenir la santé et l'efficacité de votre environnement Linux.

`top` et `htop` : surveiller les processus et l'utilisation CPU/Mémoire en temps réel

`top` (Table Of Processes) :
La commande `top` fournit une vue dynamique et en temps réel des processus en cours d'exécution sur votre système. Elle affiche une liste des processus les plus consommateurs de ressources, mise à jour régulièrement. En haut de l'écran, `top` affiche des informations système globales : uptime, nombre d'utilisateurs, charge moyenne (load average), nombre total de tâches, utilisation du CPU par catégorie (utilisateur, système, idle, etc.), et utilisation de la mémoire vive (RAM) et de la mémoire d'échange (swap).

Pour lancer `top`, tapez simplement :

top
Une fois dans `top`, vous pouvez interagir avec via des commandes clavier :
  • `q` : Quitter `top`.
  • `h` ou `?` : Afficher l'aide.
  • `M` (majuscule) : Trier les processus par utilisation de la mémoire.
  • `P` (majuscule) : Trier les processus par utilisation du CPU (comportement par défaut).
  • `k` : Tuer (kill) un processus. `top` vous demandera le PID (Process ID) du processus à tuer et le signal à envoyer (par défaut 15, SIGTERM).
  • `u` : Filtrer les processus par utilisateur.
`top` est un outil puissant mais son interface peut sembler un peu austère.

`htop` : une alternative améliorée à `top`
`htop` est un visualiseur de processus interactif qui offre une interface plus conviviale et plus d'options que `top`. Il présente les informations de manière colorée, permet de faire défiler la liste des processus verticalement et horizontalement, et d'interagir plus facilement avec la souris (si votre terminal le supporte) ou via des touches de fonction clairement indiquées en bas de l'écran.

Si `htop` n'est pas installé, vous pouvez le faire avec votre gestionnaire de paquets :

# Sur Debian/Ubuntu
sudo apt install htop

# Sur Fedora/RHEL
sudo dnf install htop
Pour lancer `htop` :
htop
Quelques interactions clés dans `htop` (les touches de fonction F1-F10 sont généralement affichées en bas) :
  • `F1` ou `h` : Aide.
  • `F2` ou `S` : Configuration (Setup), pour personnaliser les colonnes affichées, les couleurs, etc.
  • `F3` ou `/` : Rechercher un processus.
  • `F4` ou `\` : Filtrer les processus (par nom).
  • `F5` ou `t` : Afficher en mode arborescent (tree view), montrant les relations parent-enfant entre processus.
  • `F6` ou `<` `>` : Choisir le critère de tri.
  • `F7` ou `[` : Augmenter la priorité d'un processus (nice value) - nécessite des privilèges.
  • `F8` ou `]` : Diminuer la priorité d'un processus - nécessite des privilèges.
  • `F9` ou `k` : Tuer un processus (avec une interface pour choisir le signal).
  • `F10` ou `q` : Quitter `htop`.
`htop` est souvent préféré à `top` pour sa facilité d'utilisation et ses fonctionnalités étendues.

Que vous utilisiez `top` ou `htop`, surveillez particulièrement les colonnes `%CPU` (pourcentage d'utilisation du CPU), `%MEM` (pourcentage d'utilisation de la mémoire), et `RES` ou `RSS` (Resident Set Size, la mémoire physique non-swappée utilisée par le processus). Des valeurs constamment élevées pour un processus peuvent indiquer un problème.

`df` et `du` : gérer l'espace disque

`df` (Disk Free) :
La commande `df` affiche la quantité d'espace disque utilisée et disponible sur les différents systèmes de fichiers montés sur votre machine. C'est essentiel pour vérifier que vous ne manquez pas d'espace.

Syntaxe de base :

df
La sortie par défaut affiche les tailles en blocs de 1K, ce qui n'est pas très lisible. L'option `-h` (human-readable) est donc quasiment toujours utilisée pour afficher les tailles en Ko, Mo, Go :
df -h
Vous verrez des lignes pour chaque système de fichiers, indiquant sa taille totale, l'espace utilisé, l'espace disponible, le pourcentage d'utilisation, et où il est monté. Surveillez particulièrement la colonne `Use%` ou `Util%`. Un système de fichiers approchant 100% d'utilisation peut causer des problèmes sérieux.

Pour afficher l'information pour un système de fichiers spécifique (par exemple, la racine `/`) :

df -h /

`du` (Disk Usage) :
Alors que `df` donne une vue globale des systèmes de fichiers, `du` estime l'espace disque utilisé par des fichiers ou des répertoires spécifiques. C'est très utile pour identifier quels répertoires ou fichiers consomment le plus d'espace.

Syntaxe de base (affiche l'utilisation pour le répertoire courant et ses sous-répertoires) :

du
Comme pour `df`, l'option `-h` rend la sortie plus lisible :
du -h
Pour obtenir la taille totale d'un répertoire (sans détailler chaque sous-répertoire) :
du -sh nom_du_repertoire
# Exemple pour le répertoire personnel
du -sh ~
L'option `-s` (summarize) affiche seulement le total. Pour afficher les N plus gros fichiers/répertoires dans un chemin donné, on combine souvent `du` avec `sort` et `head` :
# Afficher les 10 plus gros répertoires/fichiers dans /var
sudo du -h /var | sort -rh | head -n 10
(`sort -rh` trie en mode numérique inversé lisible par l'humain, `head -n 10` affiche les 10 premières lignes).

`free` : inspecter l'utilisation de la mémoire

La commande `free` fournit un résumé de l'utilisation de la mémoire vive (RAM) et de la mémoire d'échange (swap) sur le système.

Syntaxe de base :

free
La sortie par défaut est en kibioctets. L'option `-h` (human-readable) est, encore une fois, très utile :
free -h
La sortie typique inclut des lignes pour `Mem` (mémoire physique) et `Swap` (mémoire d'échange), avec des colonnes comme :
  • `total` : Mémoire totale disponible.
  • `used` : Mémoire actuellement utilisée.
  • `free` : Mémoire inutilisée.
  • `shared` : Mémoire utilisée principalement par `tmpfs`.
  • `buff/cache` : Mémoire utilisée par les tampons du noyau ainsi que le cache de page et les inodes. Il est important de noter que cette mémoire est considérée comme disponible et peut être libérée rapidement par le système si des applications en ont besoin.
  • `available` : Estimation de la mémoire disponible pour démarrer de nouvelles applications, sans recourir au swap. Cette colonne est souvent plus pertinente que `free` pour juger de la disponibilité réelle de la mémoire.

Une utilisation élevée de la mémoire `used` n'est pas nécessairement un problème si une grande partie est dans `buff/cache`. Cependant, si la colonne `available` est très basse et que l'utilisation du `Swap` (colonne `used` pour la ligne Swap) augmente, cela signifie que votre système manque de RAM physique et commence à utiliser le disque dur comme extension de mémoire, ce qui ralentit considérablement les performances.

Pour afficher les totaux :

free -ht
L'option `-t` ajoute une ligne de totaux.

En maîtrisant `top`/`htop`, `df`, `du`, et `free`, vous disposez d'un tableau de bord complet pour surveiller l'état de santé de votre système Linux et pour identifier rapidement les goulots d'étranglement ou les problèmes de ressources.