Menu Fermer

16 outils pour vérifier l’utilisation CPU, mémoire, disque et réseau sur Linux

Lorsque le load average est élevé ou si vous faites face à un incident où l’application est lente ou inscrite en raison d’une utilisation élevée de la CPU / mémoire / réseau, il faut investiguer pour trouver la source du problème.

Pour cela, Linux est fournit par défaut avec l’utilitaire top pour afficher les processus en ligne de commandes mais il peut vite être limité.
En effet, il ne mesure pas l’utilisation disque ou réseau.
Depuis beaucoup de nouveaux utilitaires ncurses sont apparus avec beaucoup de statistiques sur l’état du système, des couleurs pour vous avertir lorsqu’un seuil est dépassé.

Dans cet article, je vous propose une sélection des 16 meilleurs outils pour mesurer l’utilisation CPU, disque, mémoire et réseau sur Linux.
Certains ressemblent à des gestionnaire de tâches qui affichent des mesures dynamiques et en temps réel de la charge système.
D’autres outils mesurent certains éléments comme I/O, bande passante réseau, …

outils pour vérifier l'utilisation CPU, mémoire, disque et réseau sur Linux

16 outils pour vérifier l’utilisation CPU, disque, mémoire et réseau sur Linux

top

Top est un utilitaire fournit dans la plupart des distributions Linux.
Il se présente sous la forme d’une vue dynamique et en temps réel des informations du système d’exploitation.
Le programme fournit une interface interactive limitée pour la manipulation de processus ainsi qu’une interface beaucoup plus étendue pour la configuration personnelle englobant tous les aspects de son fonctionnement.

Dans l’en-tête, il affiche les statistiques générales sur l’état du système dont le load average, le nombre de processus en cours d’exécution ou suspendus, l’utilisation mémoire et SWAP.
Puis la liste des processus avec l’utilisation CPU et mémoire.
Celle-ci est peut être trier par des raccourcies clavier.

top - lister les processus linux et afficher l'utilisation CPU et mémoire

Il est aussi possible d’utiliser top en ligne de commandes pour filtrer avec grep sur un processus en particulier.

top | grep php-fpm
16976 www-data  20   0 1024616 233148 204184 S  10.9   0.4   0:21.35 php-fpm8.0
16946 www-data  20   0 1026288 231156 200876 S  14.6   0.4   0:54.78 php-fpm8.0
16938 www-data  20   0 1017900 224560 201224 S   0.7   0.3   0:59.64 php-fpm8.0
16953 www-data  20   0 1009988 208104 192552 S   0.7   0.3   0:21.26 php-fpm8.0
16921 www-data  20   0 1018196 227588 204736 S   3.6   0.3   0:25.23 php-fpm8.0

atop

Le programme ATOP est un moniteur interactif pour afficher la charge sur un système Linux.
Il montre l’occupation des ressources matérielles les plus critiques du système.
C’est-à-dire la mémoire, la mémoire, le disque et réseau.
Il montre également quels procédés sont responsables de la charge indiquée par rapport à la CPU et à la charge de la mémoire au niveau du processus.
Il va donc beaucoup plus loin que top en intégrant en plus les couleurs.

Par contre, on peut trouver l’interface assez fouillies.

atop - vérifier l'utilisation CPU, disque, mémoire et réseau sur Linux

htop

HTOP est un visualiseur de processus gratuit (GPL) basé sur NCurses pour Linux.
Vous pouvez donc voir tous les processus exécutés sur le système, ainsi que leurs lignes de commande complètes, ainsi que les visualiser comme arborescence de processus, sélectionnant- plusieurs processus et agir sur eux tous à la fois.
Il est notamment possible de faire défiler verticalement la liste des processus.
On peut aussi les afficher en arborcence
Les tâches liées aux processus (tuer, la renonciation) peuvent être effectuées sans entrer dans leurs PID.

L’interface est beaucoup plus claire que ATOP notamment grâce aux couleurs beaucoup plus utilisées.
De plus des jauges permettent de surveiller la charge système facilement.

htop - vérifier l'utilisation CPU, disque, mémoire et réseau sur Linux

De plus NCURSES permet l’ajout de menus.
Ainsi un menu de réglages est disponible pour personnaliser les colonnes ou éléments à afficher.

Menus de htop

dstat

DSTAT – outil polyvalent pour générer des statistiques de ressources système qui vise à remplacer vmstat, iostat et ifstat.

Il surmonte certaines des limitations et ajoute des fonctionnalités supplémentaires. DSTAT vous permet de voir toutes vos ressources système instantanément, vous pouvez par exemple. Comparez l’utilisation du disque en combinaison avec des interruptions de votre contrôleur IDE ou comparez les numéros de bande passante réseau directement avec le disque. débit (dans le même intervalle).
Il vous donne également intelligemment les informations les plus détaillées dans les colonnes et indique clairement dans quelle magnitude et quelle unité sont affichées. Moins de confusion, moins d’erreurs, plus efficace.

Les statistiques s’affichent en liste.
Si vous souhaitez suivre l’utilisation CPU, réseau et mémoire, utilisez la commande de cette manière :

dstat -c --top-cpu -dn --top-mem
dstat - vérifier l'utilisation CPU, disque, mémoire et réseau sur Linux

glances

Glances est un outil de surveillance qui vise à présenter un maximum d’informations dans un minimum d’espace.
Pour cela, l’interface de l’outil s’adapte aux dimensions du terminal.
Elle est aussi très esthétique et épurée pour ne pas être perdu avec des informations utiles.
Ce gestionnaire de tâches pour Linux affiche les informations générales du systèmes (utilisation CPU, mémoire, SWAP) mais aussi l’utilisation disque et même les températures.
Enfin la liste des processus est aussi indiquée dans la partie centrale.

glances - vérifier l'utilisation CPU, disque, mémoire et réseau sur Linux

Glances peut également fonctionner en mode client / serveur. La surveillance à distance pourrait être effectuée via une interface Terminal ou Web.

iftop

IFTOP est un utilitaire pour mesurer la bande passante et afficher les connexions sur une interface réseau.
Pour cela, il écoute le trafic réseau sur une interface nommée, ou sur la première interface
Il peut déterminer qui ressemble à une interface externe si aucune n’est spécifiée et affiche une table d’utilisation de la largeur de bande de courant par paires d’hôtes.
Par défaut, IFTOP compte tous les paquets IP qui traversent le filtre et la direction du paquet est déterminée en fonction de la direction du paquet se déplaçant sur l’interface.

On peut retirer l’affichage DNS, trier par l’hôte qui utilise le plus la bande passante, par port entrant ou sortant, etc.

iftop - afficher l'utilisation réseau, connexion réseau et bande passante

iptraf-ng

iptraf est un utilitaire de statistiques de réseau basée sur une console pour Linux.
Il se présente avec une interface Ncurses avec des menus.

iptraf-ng - Utilitaire pour mesurer la bande passante et statistiques réseaux pour Linux

Vous pouvez très facilement afficher les connexions en cours avec le nombre de paquets de connexion TCP et les octets envoyés reçus.
En bas, on trouve la liste des connexions avec le protocole TCP, UDP, ICMP, …

iptraf-ng - Utilitaire pour mesurer la bande passante et statistiques réseaux pour Linux

L’outil peut aussi afficher des statistiques générales sur l’interface réseau.
On trouve alors les comptes d’octets entrant, sortants et total par protocoles.
Enfin les pannes de trafic TCP / UDP et le paquet de gare LAN et le nombre d’octets.

iptraf-ng - Utilitaire pour mesurer la bande passante et statistiques réseaux pour Linux

iostat

iOSTAT permet de signaler une unité centrale de traitement (CPU) Statistiques et statistiques d’entrée / sortie pour les appareils et les partitions.
La commande iostat est utilisée pour la surveillance du dispositif d’entrée/sortie du système en observant le temps que les périphériques sont actifs par rapport à leurs taux de transfert moyens.
Elle génère des rapports pouvant être utilisés pour modifier la configuration du système afin de mieux équilibrer la charge d’entrée / sortie entre les disques physiques.
Par exemple, le premier rapport généré par la commande iostat fournit des statistiques sur le temps que le système a été démarré, sauf si l’option -y est utilisée (dans ce cas, ce premier rapport est omis).

iostat - afficher l'utilisation disque et CPU

iotop

iotop est un top like mais pour les I/O disques.
Il affiche en temps réel des colonnes avec la bande passante d’E/S lu et écrite par chaque processus / thread.
Mais également le pourcentage de temps le thread / processus dépensé tout en échangeant et en attendant I/O.
Le total des valeurs d’écriture de lecture et de disque total de disque représentent une bande passante totale de lecture et d’écriture entre Processus et fils du noyau sur le côté d’un côté et du sous-système de périphérique de bloc de noyau de l’autre.

C’est un très bon outil pour surveiller l’activité de votre disque ou SSD.

iotop - Vérifier l'utilisation disque total et par processus

mpstat

MPSTAT est une commande utilisée pour signaler les statistiques relatives au processeur. Il affiche avec précision les statistiques de l’utilisation de la CPU du système. Il affiche des informations sur l’utilisation et les performances de la CPU. Il initialise le premier processeur avec CPU 0, le second avec CPU 1, etc.

mpstat - statistiques utilisation processeur

Pour afficher l’intégralité des informations et état du système :

mpstat -A
mpstat - statistiques utilisation processeur

Enfin rafraichir l’état CPU dans un intervalles de 5s :

mpstat -I ALL 5

nmon

NMON est un administrateur de systèmes, syntoniseur, outil de référence.
Il peut afficher la CPU, la mémoire, le réseau, les disques (mini graphiques ou numéros), les systèmes de fichiers, les processus NFS, les processus supérieurs, les ressources (version Linux et les processeurs) et sur puissance Informations sur la micro-partition.

Lancée sans aucun paramètre, il affiche le menu suivant avec les statistiques de l’élément à surveiller.

nmon - vérifier l'utilisation CPU, disque, mémoire et réseau sur Linux

Par exemple les mesures d’utilisation CPU en pourcentage et jauges.

nmon - vérifier l'utilisation CPU

L’utilisation NFS avec les lectures et écritures côté client et serveur.

nmon - vérifier l'utilisation NTFS

L’état du noyau Linux et le load Average.

nmon - Etat du noyau Linux et load average

Un bon outil pour surveiller un élément particulier du système.
N’offrant pas une interface générale de surveiller en temps réel, il est très bien pour compléter des outils tel que top, aop, htop ou glances.

cpustat

cpustat et un utilitaire écrit en langage go qui donne les informations sur l’utilisation processeur.
Il faut installer ce dernier et le compiler :

sudo apt install golang
sudo go get github.com/uber-common/cpustat

Pour afficher les données en mode de terminal fantaisie, exécutez la commande suivante dans le terminal.

/root/go/bin/cpustat -t
CPUStat - Mesurer l'utilisation processeur

Sinon sans aucune option, les informations d’utilisation CPU s’affichent en texte dans le terminal :

/root/go/bin/cpustat
CPUStat - Mesurer l'utilisation processeur

sar

La commande SAR permet de suivre les activités effectuées dans un système informatique.
Elle, est très utile pour comprendre car elle peut faciliter diverses tâches liées à l’administration du système.
Les statistiques rapportées par SAR comprennent les taux de transfert d’E/S, l’activité de pagination, les activités liées aux processus, les interruptions, l’utilisation de l’activité de réseau, la mémoire et l’utilisation de l’espace d’échange, l’utilisation de la CPU, les activités du noyau et les statistiques de l’AT, entre autres.

On utilise une option -u, -d, -S pour afficher un compteur puis les délais et le nombre de réactualisation.

La commande suivante affiche l’utilisation de la CPU en temps réel cumulatif de tout CPU pour 2 secondes au total 3 fois.

sar -u 2 3

L’option -P affiche des statistiques pour tous les cœurs individuels.
Si votre système a 4 noyaux, la “colonne CPU” contiendra le nombre 0, 1, 2, 3 indiquant les numéros de noyau CPU correspondants.
L’option “2 3” affiche les statistiques toutes les 2 secondes pendant 3 fois.

sar -P ALL 2 3
sar - vérifier l'utilisation CPU

Pour afficher l’utilisation du SWAP avec l’option -S :

sar -S 2 2

Il est aussi possible d’afficher l’utilisation disque, utilisez l’option -d :

sar -d 2 2
sar - vérifier l'utilisation mémoire ou disque

Enfin si vous désirez afficher les statistiques de chaque interface réseau :

sar -n DEV 2 2

tiptop

Le programme TIPTOP offre une vue en temps réel dynamique des tâches exécutées dans le système.
TipTop est très similaire à l’outil top mais les informations affichées proviennent de compteurs de matériel.

TIPTOP a deux modes de fonctionnement: mode en direct et mode batch.
Dans les deux modes, le système est interrogé périodiquement pour les valeurs des compteurs matériels et divers rapports sont imprimés pour chaque tâche.
En mode live, l’affichage est régulièrement mis à jour avec de nouvelles valeurs à intervalles de temps constants. En mode BATCH, les mêmes informations sont émises sur stdout.

Le mode de lot est approprié pour économiser dans un fichier ou pour un traitement ultérieur. Aucune interaction n’est possible en mode batch.

CPUStat - vérifier l'utilisation CPU et mémoire

Utilisez l’option -b pour passer en mode batch :

tiptop -b
tiptop - up 197 days, 2:56, load average: 0.20, 0.24, 0.27
Wed Aug  4 15:40:20 CEST 2021
delay: 2.00  idle: 0  threads: 0
Screen 0: default

PID [ %CPU] %SYS    P   Mcycle   Minstr   IPC  %MISS  %BMIS  %BUS COMMAND

30656    0.0   0.0   15        ?        ?     ?      ?      ?     ? lockd
   10    0.0   0.0    2     0.00     0.00     -      -      -     - rcu_sched
21952+   0.0   0.0    7        ?        ?     ?      ?      ?     ? fail2ban-server
  409    0.0   0.0   11     0.00     0.00     -      -      -     - md2_raid1
  765    0.0   0.0    9     0.00     0.00     -      -      -     - nscd
  112    0.0   0.0    4     0.00     0.00     -      -      -     - kswapd0
17808+   0.0   0.0   12        ?        ?     ?      ?      ?     ? memcached
 5353    0.0   0.0    4        ?        ?     ?      ?      ?     ? systemd-journal
29628    0.0   0.0   11        ?        ?     ?      ?      ?     ? screen
   99    0.0   0.0    0     0.00     0.00     -      -      -     - khugepaged
25115    0.0   0.0   13        ?        ?     ?      ?      ?     ? atopacctd
  456    0.0   0.0   12     0.00     0.00     -      -      -     - jbd2/md2-8
    1    0.0   0.0    5     0.00     0.00     -      -      -     - systemd

ps

La commande ps permet de lister les processus en cours d’exécution sur Linux.
Cela peut nous donner de nombreuses informations utiles sur ces processus, y compris leur PID (ID de processus), TTY, l’utilisateur exécutant une commande ou une application, etc.
On peut aussi obtenir des informations sur l’utilisation CPU et mémoire de chaque processus.

Pour afficher l’utilisation la plus élevée de la CPU et de la mémoire par des processus exécutés par root :

 ps u | sort -k 1 -r | head -10
Commande ps - lister les processus par utilisation CPU et mémoire sur Linux

Exécutez la commande suivante pour afficher l’utilisation de la CPU pour la commande spécifique :

ps -eo pcpu,args | sort -k 1 -r | head -8
Commande ps - lister les processus par utilisation CPU et mémoire sur Linux

Pour afficher des processus pour tous les utilisateurs et non attachés à un terminal en liste de formats complets :

ps -auxf | sort -nr -k 3 | head -10
Commande ps - lister les processus par utilisation CPU et mémoire sur Linux

vmstat

VMSTAT (virtual memory statistics) rapporte des informations sur les processus, la mémoire, la pagination, le bloc Io, les pièges, les disques et l’activité de la CPU. Le premier rapport produit donne des moyennes depuis le dernier redémarrage.
Des rapports supplémentaires donnent des informations sur une période d’échantillonnage de délai de longueur. Les rapports de processus et de mémoire sont instantanés dans les deux cas.

Les données s’affichent en brute mais vous pouvez demander à rafraichir toutes les X secondes.
Par exemples toutes les 5s :

vmstat 5
vmstat - vérifier utilisation mémoire

Conclusion

J’espère qu’avec cet article complet autour des outils pour vérifier votre système, vous trouverez votre bonheur.
Selon les besoins, il faut utiliser un outil en particulier.
Par exemple pour une surveille générale, des outils tels que atop, htop, glance ou top peuvent suffire.
Lorsqu’il s’agit d’investiguer un problème de fonctionnent du système comme un load average élevé, vous pouvez alors compléter avec iftop, iotop ou mnon.

Voici un tableau récapitulatif.

UtilitaireDescriptif
atopMoniteur de système et de processus avancé (CPU, disque, mémoire, réseau)
cpustatAfficher les statistiques sur l’utilisation processeur
dstatOutil polyvalent pour générer des statistiques de ressources systèmes
glancesGestionnaire de tâches pour Linux
htopGestionnaire de tâches pour Linux – Visionneuse de processus interactif
topAffiche l’utilisation CPU, mémoire
iftopAfficher l’utilisation de la bande passante sur une interface par hôte
itopAfficher les I/O et donc l’utilisation disque
iostatPermet de signaler une unité centrale de traitement (CPU)
Statistiques et statistiques d’entrée / sortie pour les appareils et les partitions.
iptraf / iptraf-ngUtilitaire de statistiques de réseau basée sur une console pour Linux
mpstatCollecte et affiche des statistiques de performance pour tous les processeurs logiques du système
nmonCapable d’afficher tous les informations (CPU, mémoire, disque, réseau, NFS, kernel, …)
perfPERF peut mesurer les compteurs de performance de la CPU.
Plutôt un outil de benchmark.
psLister les processus en cours d’exécution
sarCollecte et rapporte les informations sur l’activité du système.
vmstatAfficher des statistiques de mémoire virtuelle
Les utilitaires pour mesurer l’utilisation CPU, disque mémoire, réseau sur Linux