Les dix commandes essentielles pour la surveillance des systèmes Linux
Les systèmes Linux sont la colonne vertébrale d'innombrables applications, services et composants d'infrastructure dans le monde entier. Assurer leur stabilité, leurs performances et la disponibilité de leurs ressources est une responsabilité essentielle pour tout administrateur système. Une surveillance proactive permet d'identifier les goulots d'étranglement, d'anticiper les problèmes et de maintenir une santé optimale du système avant que les problèmes ne s'aggravent.
Cet article présente les dix commandes les plus essentielles que tout administrateur Linux devrait maîtriser pour l'analyse des performances du système en temps réel et le suivi des ressources. Ces outils offrent des informations précieuses sur divers aspects de votre système, de l'utilisation du CPU et de la mémoire aux E/S disque et à l'activité réseau. En comprenant et en utilisant régulièrement ces commandes, vous pouvez diagnostiquer efficacement les problèmes de performance, identifier les processus gourmands en ressources et vous assurer que vos systèmes Linux fonctionnent sans accroc.
Que vous dépanniez un serveur lent, optimisiez l'allocation des ressources ou effectuiez simplement des vérifications de routine, les commandes abordées ici constituent la base d'une surveillance efficace des systèmes Linux. Explorons ces outils indispensables et comment les exploiter pour un environnement Linux plus sain et plus performant.
1. top - Activité des processus en temps réel
La commande top offre une vue dynamique et en temps réel d'un système Linux en cours d'exécution. Elle affiche un résumé des informations système et une liste des processus ou threads actuellement gérés par le noyau Linux. C'est souvent le premier outil vers lequel les administrateurs se tournent pour un aperçu rapide de l'activité du système.
Métriques clés :
- Utilisation du CPU :
us(utilisateur),sy(système),ni(nice),id(inactif),wa(attente E/S),hi(IRQ matériel),si(IRQ logiciel),st(temps de vol). - Utilisation de la mémoire : Total, libre, utilisé, tampons/cache.
- Utilisation du swap : Total, libre, utilisé.
- Liste des processus : PID, Utilisateur, PR (priorité), NI (valeur nice), VIRT (mémoire virtuelle), RES (mémoire résidente), SHR (mémoire partagée), S (statut), %CPU, %MEM, TIME+, COMMANDE.
Utilisation de base :
top
Exemples pratiques :
- Trier par utilisation du CPU : Dans
top, appuyez surP. - Trier par utilisation de la mémoire : Dans
top, appuyez surM. - Afficher les processus d'un utilisateur spécifique : Dans
top, appuyez surupuis tapez le nom d'utilisateur. - Tuer un processus : Dans
top, appuyez surket entrez le PID.
Conseils :
- Appuyez sur
1pour basculer l'affichage des cœurs de CPU individuels. - Appuyez sur
qpour quittertop. - Utilisez
top -bn1pour obtenir un instantané unique (utile pour les scripts).
2. htop - Afficheur de processus interactif
htop est un afficheur de processus amélioré, interactif et convivial qui offre de nombreux avantages par rapport à la commande top traditionnelle. Il présente une interface plus visuelle et navigable, ce qui facilite la surveillance et la gestion des processus.
Avantages clés :
- Indicateurs visuels : L'utilisation du CPU, de la mémoire et du swap est affichée graphiquement.
- Liste déroulante : Vous pouvez faire défiler verticalement et horizontalement pour voir tous les processus et leurs lignes de commande complètes.
- Gestion facile des processus : Les actions telles que tuer, renice, et autres peuvent être effectuées directement à l'aide des touches de fonction sans saisir de PID.
- Vue arborescente : Les processus peuvent être affichés sous forme d'arborescence pour montrer les relations parent-enfant.
Utilisation de base :
# Peut nécessiter une installation :
# sudo apt install htop (Debian/Ubuntu)
# sudo yum install htop (RHEL/CentOS)
htop
Exemples pratiques :
- Filtrer les processus : Appuyez sur
F4. - Tuer un processus : Sélectionnez le processus, puis appuyez sur
F9. - Trier par diverses colonnes : Utilisez
F6.
Conseils :
htopest généralement préféré pour la surveillance interactive en raison de son expérience utilisateur supérieure.- Personnalisez les options d'affichage de
htop(F2) pour l'adapter à votre flux de travail.
3. vmstat - Statistiques de la mémoire virtuelle
La commande vmstat rapporte des informations sur les processus, la mémoire, la pagination, les E/S bloc, les interruptions et l'activité du CPU. C'est un excellent outil pour identifier les goulots d'étranglement de la mémoire ou les E/S disque élevées.
Métriques clés :
r: Nombre de processus en attente d'exécution.b: Nombre de processus en veille ininterrompue (typiquement E/S).swpd: Quantité de mémoire virtuelle utilisée.free: Quantité de mémoire inactive.si/so: Quantité de mémoire paginée depuis le disque / paginée vers le disque.bi/bo: Blocs reçus d'un périphérique bloc / blocs envoyés à un périphérique bloc.wa: Temps passé à attendre l'achèvement des E/S.
Utilisation de base :
vmstat 1 5 # Rapport toutes les 1 seconde, 5 fois
Exemples pratiques :
- Afficher toutes les statistiques dans un tableau :
vmstat -a - Afficher la mémoire active/inactive :
vmstat -a - Afficher les informations de slab :
vmstat -m - Afficher les statistiques disque :
vmstat -d
Conseils :
- Des valeurs
si/soélevées indiquent souvent une pression mémoire et un échange excessif, ce qui peut gravement dégrader les performances. - Un pourcentage
waconstamment élevé suggère un goulot d'étranglement des E/S.
4. iostat - Statistiques E/S
iostat fait partie du package sysstat et rapporte l'utilisation du CPU et les statistiques d'E/S pour les périphériques, les partitions et les systèmes de fichiers réseau. Il est crucial pour comprendre les problèmes de performance disque.
Métriques clés :
%user,%system,%iowait,%idle: Ventilation de l'utilisation du CPU.r/s/w/s: Lectures/écritures par seconde.rkB/s/wkB/s: Kilo-octets lus/écrits par seconde.await: Temps moyen (en millisecondes) pour que les requêtes d'E/S émises vers le périphérique soient traitées.%util: Pourcentage du temps CPU pendant lequel des requêtes d'E/S ont été émises vers le périphérique.
Utilisation de base :
# Peut nécessiter une installation :
# sudo apt install sysstat (Debian/Ubuntu)
# sudo yum install sysstat (RHEL/CentOS)
iostat -xz 1 5 # Statistiques étendues, toutes les 1 seconde, 5 fois
Exemples pratiques :
- Surveillance d'un périphérique spécifique :
iostat -xz /dev/sda 1 - Afficher uniquement l'utilisation du CPU :
iostat -c - Afficher uniquement l'utilisation du périphérique :
iostat -d
Conseils :
- Un
%utilélevé (proche de 100 %) combiné à un tempsawaitélevé indique un goulot d'étranglement des E/S sur ce périphérique. - Comparez
rkB/setwkB/savecr/setw/spour comprendre la taille moyenne des E/S.
5. free - Utilisation de la mémoire
La commande free affiche la quantité totale de mémoire physique et d'espace swap libre et utilisée dans le système, ainsi que les tampons et caches utilisés par le noyau.
Métriques clés :
total: Mémoire totale installée.used: Mémoire utilisée (inclut les tampons/cache).free: Mémoire inutilisée.shared: Mémoire utilisée par tmpfs (segments de mémoire partagée).buff/cache: Mémoire utilisée par les tampons du noyau et le cache de pages.available: Une estimation de la quantité de mémoire disponible pour le démarrage de nouvelles applications, sans swap.
Utilisation de base :
free -h # Sortie lisible par un humain
Exemples pratiques :
- Afficher la mémoire en mégaoctets :
free -m - Mettre à jour en continu toutes les 5 secondes :
watch -n 5 free -h
Conseils :
- La colonne
availableest la métrique la plus importante pour comprendre la quantité de mémoire réellement libre pour les nouveaux processus. - Linux utilise agressivement la mémoire disponible pour le cache disque, donc une faible valeur
freeest normale et souvent souhaitable.
6. df - Utilisation de l'espace disque
La commande df rapporte la quantité d'espace disque utilisée et disponible sur les systèmes de fichiers. Elle est essentielle pour surveiller la capacité de stockage et prévenir les scénarios de disque plein.
Métriques clés :
Filesystem: Le nom du système de fichiers.Size: Taille totale du système de fichiers.Used: Quantité d'espace disque utilisée.Avail: Quantité d'espace disque disponible.Use%: Pourcentage d'espace disque utilisé.Mounted on: Le point de montage du système de fichiers.
Utilisation de base :
df -h # Sortie lisible par un humain
Exemples pratiques :
- Afficher l'utilisation des inodes :
df -i(les inodes sont des structures de métadonnées ; en manquer peut empêcher la création de fichiers même avec de l'espace libre). - Afficher un type de système de fichiers spécifique :
df -hT -t ext4
Conseils :
- Vérifiez régulièrement
Use%pour éviter que les systèmes de fichiers ne se remplissent, ce qui peut entraîner des défaillances d'applications et une instabilité du système. - Une utilisation élevée des inodes peut être un problème avec de nombreux petits fichiers.
7. du - Utilisation du disque des fichiers et répertoires
La commande du estime l'utilisation de l'espace fichier. Alors que df vérifie l'utilisation totale du système de fichiers, du est utilisée pour connaître la taille de fichiers ou de répertoires spécifiques, ce qui est essentiel pour identifier ce qui consomme de l'espace disque.
Métriques clés :
- Taille totale des fichiers ou répertoires spécifiés.
Utilisation de base :
du -sh /var/log # Résumé, lisible par un humain pour le répertoire /var/log
Exemples pratiques :
- Afficher la taille de tous les sous-répertoires (un niveau de profondeur) :
du -h --max-depth=1 /home/user - Trouver les fichiers/répertoires les plus volumineux :
du -ah /chemin/a/verifier | sort -rh | head -n 10
Conseils :
- Combinez
duavecsortetheadpour identifier rapidement les consommateurs d'espace disque. - Soyez vigilant lorsque vous exécutez
dusur de grands répertoires, car cela peut être gourmand en ressources.
8. sar - Rapporteur d'activité système
sar est un outil puissant du package sysstat qui collecte, rapporte ou enregistre des informations sur l'activité du système. Contrairement à top ou vmstat qui affichent des instantanés en temps réel, sar excelle à fournir des données historiques, ce qui le rend inestimable pour l'analyse des performances à long terme et la planification de capacité.
Fonctionnalités clés :
- Statistiques CPU :
%user,%nice,%system,%iowait,%steal,%idle. - Statistiques mémoire :
kbmemfree,kbmemused,kbbuffers,kbcached. - E/S disque :
tps,rd_sec/s,wr_sec/s. - Statistiques réseau :
rxpck/s,txpck/s,rxbyt/s,txbyt/s. - Charge moyenne, activité swap, activité du noyau, et plus encore.
Utilisation de base :
# Rapporter l'utilisation du CPU toutes les 1 seconde, 5 fois :
sar -u 1 5
# Rapporter l'activité disque :
sar -d
# Rapporter l'utilisation de la mémoire :
sar -r
# Rapporter les statistiques réseau :
sar -n DEV
Exemples pratiques :
- Voir l'activité CPU d'hier :
sar -u -f /var/log/sysstat/saJJ(remplacez JJ par le jour du mois) - Afficher toutes les données collectées pour aujourd'hui :
sar -A
Conseils :
- Assurez-vous que le package
sysstatest installé et configuré pour collecter régulièrement des données pour l'analyse historique. sarpeut être accablant ; concentrez-vous sur les indicateurs spécifiques (-u,-r,-d,-n) pertinents pour votre investigation.
9. ss (Socket Statistics) - Connexions réseau
ss est un utilitaire pour examiner les sockets. C'est un remplacement plus rapide et plus efficace de l'ancienne commande netstat, fournissant des informations plus détaillées sur les types de sockets TCP, UDP et autres, y compris leur état, leurs adresses locales/distantes et leurs ID de processus.
Métriques clés :
- État :
ESTAB,LISTEN,TIME-WAIT,CLOSE-WAIT, etc. - Recv-Q / Send-Q : Les tailles des files d'attente de réception et d'envoi.
- Adresse locale:Port / Adresse distante:Port : Les points de terminaison locaux et distants.
- Nom du processus : Le processus associé au socket.
Utilisation de base :
ss -tuln # TCP, UDP, en écoute, ports numériques
Exemples pratiques :
- Lister toutes les connexions TCP :
ss -t - Lister toutes les connexions UDP :
ss -u - Afficher les processus écoutant sur des ports spécifiques :
ss -tulnp | grep 80 - Résumer les statistiques des sockets :
ss -s
Conseils :
- Recherchez un nombre anormalement élevé de connexions
TIME-WAIT, ce qui peut indiquer des problèmes côté client ou un serveur web mal configuré. - Surveillez
Recv-QetSend-Qpour détecter les signes de problèmes de mise en mémoire tampon réseau ou de traitement d'application lent.
10. uptime - Durée de fonctionnement du système et charge moyenne
La commande uptime indique depuis combien de temps le système est en cours d'exécution, l'heure actuelle, le nombre d'utilisateurs connectés et les charges moyennes du système pour les 1, 5 et 15 dernières minutes.
Métriques clés :
- Heure actuelle : Explicite.
- Durée de fonctionnement : Depuis combien de temps le système est en cours d'exécution.
- Utilisateurs : Nombre d'utilisateurs actuellement connectés.
- Charge moyenne : Le nombre moyen de processus qui sont soit dans un état exécutable, soit dans un état ininterrompu. Cela inclut les processus qui s'exécutent sur le CPU, qui attendent le CPU ou qui attendent des E/S disque.
- Charge moyenne sur 1 minute
- Charge moyenne sur 5 minutes
- Charge moyenne sur 15 minutes
Utilisation de base :
uptime
Exemples pratiques :
- Souvent utilisée comme vérification rapide de l'activité générale d'un serveur.
Conseils :
- Comparez la charge moyenne au nombre de cœurs de CPU de votre système. Une charge moyenne constamment supérieure au nombre de cœurs de CPU indique souvent un goulot d'étranglement du CPU ou des E/S.
- Une charge moyenne croissante au fil du temps (par exemple, 1 minute > 5 minutes > 15 minutes) suggère que le système devient plus sollicité.
Conclusion
La maîtrise de ces dix commandes Linux essentielles est fondamentale pour tout administrateur système soucieux de surveiller et de maintenir des systèmes sains et performants. De l'identification rapide des pics de CPU avec top et htop au diagnostic des goulots d'étranglement des E/S disque avec iostat et de la pression mémoire avec vmstat, ces outils fournissent une boîte à outils complète pour une gestion proactive du système.
Incorporer régulièrement ces commandes dans votre routine de surveillance, comprendre leur sortie et savoir quand utiliser chacune d'elles vous permettra de dépanner efficacement les problèmes, d'optimiser l'utilisation des ressources et d'assurer la fiabilité de votre infrastructure Linux. Continuez à explorer leurs options et intégrez-les dans vos scripts pour des rapports automatisés afin d'améliorer vos capacités d'administration système. Bonne surveillance !