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, …
Table des matières
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.
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.
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.
De plus NCURSES permet l’ajout de menus.
Ainsi un menu de réglages est disponible pour personnaliser les colonnes ou éléments à afficher.
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
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 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.
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.
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, …
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.
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).
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.
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.
Pour afficher l’intégralité des informations et état du système :
mpstat -A
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.
Par exemple les mesures d’utilisation CPU en pourcentage et jauges.
L’utilisation NFS avec les lectures et écritures côté client et serveur.
L’état du noyau Linux et le 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
Sinon sans aucune option, les informations d’utilisation CPU s’affichent en texte dans le terminal :
/root/go/bin/cpustat
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
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
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.
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
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
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
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
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.
Utilitaire | Descriptif |
atop | Moniteur de système et de processus avancé (CPU, disque, mémoire, réseau) |
cpustat | Afficher les statistiques sur l’utilisation processeur |
dstat | Outil polyvalent pour générer des statistiques de ressources systèmes |
glances | Gestionnaire de tâches pour Linux |
htop | Gestionnaire de tâches pour Linux – Visionneuse de processus interactif |
top | Affiche l’utilisation CPU, mémoire |
iftop | Afficher l’utilisation de la bande passante sur une interface par hôte |
itop | Afficher les I/O et donc l’utilisation disque |
iostat | Permet de signaler une unité centrale de traitement (CPU) Statistiques et statistiques d’entrée / sortie pour les appareils et les partitions. |
iptraf / iptraf-ng | Utilitaire de statistiques de réseau basée sur une console pour Linux |
mpstat | Collecte et affiche des statistiques de performance pour tous les processeurs logiques du système |
nmon | Capable d’afficher tous les informations (CPU, mémoire, disque, réseau, NFS, kernel, …) |
perf | PERF peut mesurer les compteurs de performance de la CPU. Plutôt un outil de benchmark. |
ps | Lister les processus en cours d’exécution |
sar | Collecte et rapporte les informations sur l’activité du système. |
vmstat | Afficher des statistiques de mémoire virtuelle |
Liens
- Utiliser la commande PS pour lister les processus sur Linux avec des exemples
- VMStat : Mesures de performance Linux
- Top : lister les processus sur Linux
- Commande PS : lister les processus sur Linux
- Utiliser la commande Kill, Killall, pkill pour arrêter un processus sur Linux
- 6 exemples d’utilisation de la commande Kill sur Linux
- Qu’est-ce que le load average sur Linux
- Mesurer le débit et lister les connexions réseaux sur Linux
- La mémoire sur Linux : comment ça marche