Les Dix Commandes Essentielles pour la Surveillance des Systèmes Linux
Apprenez dix commandes de surveillance Linux pour vérifier le CPU, la mémoire, le disque, les sockets réseau, la charge et l'activité historique du système.
Les dix commandes essentielles pour la surveillance d'un système Linux
Lorsqu'un serveur Linux semble lent, vous avez besoin de commandes qui vous indiquent si la pression vient du CPU, de la mémoire, du disque, du réseau ou de la charge. Ces commandes de surveillance Linux vous aident à passer de « le serveur est lent » à une prochaine étape spécifique.
Les dix outils ci-dessous vous offrent des instantanés rapides, des vues interactives et des données historiques. Utilisez-les ensemble plutôt que de vous fier à un seul chiffre isolément.
1. top - Activité des processus en temps réel
La commande top fournit 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 auquel les administrateurs se tournent pour obtenir 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érielle),si(IRQ logicielle),st(temps volé). - Utilisation de la mémoire : Total, libre, utilisée, 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 : Pendant que vous êtes dans
top, appuyez surP. - Trier par utilisation de la mémoire : Pendant que vous êtes dans
top, appuyez surM. - Afficher les processus d'un utilisateur spécifique : Pendant que vous êtes dans
top, appuyez surupuis tapez le nom d'utilisateur. - Tuer un processus : Pendant que vous êtes dans
top, appuyez surket entrez le PID.
Conseils :
- Appuyez sur
1pour basculer l'affichage des cœurs CPU individuels. - Appuyez sur
qpour quittertop. - Utilisez
top -bn1pour obtenir un seul instantané (utile pour les scripts).
2. htop - Visualiseur de processus interactif
htop est un visualiseur de processus amélioré, interactif et convivial qui offre de nombreux avantages par rapport à la commande traditionnelle top. Il présente une interface plus attrayante visuellement et plus facile à naviguer, ce qui facilite la surveillance et la gestion des processus.
Principaux avantages :
- Compteurs 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 : Tuer, renice et d'autres actions peuvent être effectuées directement à l'aide des touches de fonction sans entrer les PID.
- Vue arborescente : Les processus peuvent être affichés dans un format arborescent 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 différentes 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 de temps d'exécution.b: Nombre de processus en sommeil non interruptible (généralement des E/S).swpd: Quantité de mémoire virtuelle utilisée.free: Quantité de mémoire inactif.si/so: Quantité de mémoire échangée depuis le disque / échangé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 la fin des E/S.
Utilisation de base :
vmstat 1 5 # Rapport toutes les 1 seconde, 5 fois
Exemples pratiques :
- Afficher la mémoire active/inactive :
vmstat -a - Afficher slabinfo :
vmstat -m - Afficher les statistiques disque :
vmstat -d
Conseils :
- Des valeurs élevées de
si/soindiquent 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 d'E/S
iostat fait partie du paquet 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 du disque.
Métriques clés :
%user,%system,%iowait,%idle: Répartitions de l'utilisation du CPU.r/s/w/s: Lectures/écritures par seconde.rkB/s/wkB/s: Kilooctets 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 écoulé pendant lequel le périphérique avait des requêtes d'E/S en cours.
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é combiné à un tempsawaitélevé indique souvent un goulot d'étranglement des E/S sur ce périphérique. Sur les SSD modernes et le stockage virtualisé, confirmez avec la latence de l'application avant de supposer que le disque est saturé. - 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 libre et utilisée et d'espace d'échange dans le système, ainsi que les tampons et les 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 démarrer de nouvelles applications, sans échange.
Utilisation de base :
free -h # Sortie lisible par l'homme
Exemples pratiques :
- Afficher la mémoire en mégaoctets :
free -m - Mise à jour continue toutes les 5 secondes :
watch -n 5 free -h
Conseils :
- La colonne
availableest la métrique la plus importante pour comprendre combien de mémoire est réellement libre pour de nouveaux processus. - Linux utilise de manière agressive la mémoire disponible pour la mise en cache du disque, donc une valeur
freefaible est normale et souvent souhaitable.
6. df - Utilisation de l'espace disque
La commande df rapporte la quantité d'espace disque utilisé 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é.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 l'homme
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é pour connaître la taille de fichiers ou 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 l'homme pour le répertoire /var/log
Exemples pratiques :
- Afficher les tailles de tous les sous-répertoires (un niveau de profondeur) :
du -h --max-depth=1 /home/utilisateur - Trouver les plus grands fichiers/répertoires :
du -ah /chemin/vers/verifier | sort -rh | head -n 10
Conseils :
- Combinez
duavecsortetheadpour identifier rapidement les gros consommateurs d'espace disque. - Soyez prudent 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 paquet sysstat qui collecte, rapporte ou enregistre les informations d'activité du système. Contrairement à top ou vmstat qui montrent des instantanés en temps réel, sar excelle dans la fourniture de données historiques, ce qui le rend inestimable pour l'analyse des performances à long terme et la planification de la capacité.
Principales fonctionnalité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é d'échange, activité du noyau, et plus encore.
Utilisation de base :
# Rapport d'utilisation du CPU toutes les 1 seconde, 5 fois :
sar -u 1 5
# Rapport d'activité disque :
sar -d
# Rapport d'utilisation de la mémoire :
sar -r
# Rapport de statistiques réseau :
sar -n DEV
Exemples pratiques :
- Afficher un fichier d'activité CPU enregistré :
sar -u -f /var/log/sysstat/saJJsur de nombreux systèmes basés sur Debian, ou/var/log/sa/saJJsur de nombreux systèmes basés sur RHEL. RemplacezJJpar le jour du mois. - Afficher toutes les données collectées pour aujourd'hui :
sar -A
Conseils :
- Assurez-vous que le paquet
sysstatest installé et configuré pour collecter des données régulièrement pour l'analyse historique. sarpeut être écrasant ; concentrez-vous sur des indicateurs spécifiques (-u,-r,-d,-n) pertinents pour votre enquête.
9. ss (Statistiques des sockets) - 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 sockets TCP, UDP et autres types de sockets, y compris leur état, leurs adresses locales/distance et les identifiants 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, écoute, ports numériques
Exemples pratiques :
- Lister toutes les connexions TCP :
ss -t - Lister toutes les connexions UDP :
ss -u - Afficher les processus en écoute sur des ports spécifiques :
ss -tulnp | grep 80 - Résumer les statistiques des sockets :
ss -s
Conseils :
- Un nombre élevé de sockets
TIME-WAITn'est pas automatiquement mauvais ; cela peut être normal sur des services TCP très sollicités. Associez-le à l'épuisement des ports, aux connexions échouées ou à la croissance des files d'attente avant de le traiter comme un problème. - Surveillez
Recv-QetSend-Qpour détecter les signes de problèmes de mise en mémoire tampon réseau ou de traitement lent de l'application.
10. uptime - Temps de fonctionnement du système et charge moyenne
La commande uptime montre depuis combien de temps le système fonctionne, l'heure actuelle, combien d'utilisateurs sont 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.
- Uptime : Depuis combien de temps le système fonctionne.
- 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 non interruptible. 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é comme une vérification rapide de l'état de santé général d'un serveur.
Conseils :
- Comparez la charge moyenne au nombre de cœurs CPU de votre système. Une charge moyenne constamment supérieure au nombre de cœurs 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 occupé.
Un flux de dépannage simple
Pour un serveur lent, commencez par uptime pour vérifier la charge, puis utilisez top ou htop pour trouver les processus occupés. Vérifiez free -h et vmstat 1 5 pour la pression mémoire, iostat -xz 1 5 pour la latence du disque, et ss -tulnp pour les services en écoute ou les sockets bloqués. Si le problème s'est produit plus tôt, utilisez sar pour comparer la fenêtre problématique avec une fenêtre normale.
La leçon est simple : chaque commande répond à une partie de l'histoire. Votre travail consiste à aligner les preuves du CPU, de la mémoire, du disque et du réseau avant de redémarrer les services ou de redimensionner la machine.