Cinq commandes Linux pour monitorer les performances des serveurs
Évaluer les performances des serveurs Linux est chronophage si l’on ne dispose pas des bons outils. Les commandes top, vmstat, iostat, free et sar vous permettront d’obtenir les métriques qu’il vous faut.
La gestion des performances sur les serveurs Linux est une tâche qui demande du temps, de connaître la ligne de commande et un peu d'intuition. Cinq commandes simples peuvent vous livrer une grande quantité d’informations à propos d’une machine et vous aider à résoudre rapidement ses problèmes.
- Top
La commande top indique les tâches que le noyau est en train gérer, ainsi que quelques données statistiques générales sur l'état du serveur. La commande top met automatiquement à jour ces données toutes les cinq secondes si vous ne personnalisez pas d’autre délai.
Cette commande offre de nombreuses possibilités d’investigation. Il vous suffit d’appuyer sur la touche H (pour « Help ») pendant qu’elle fonctionne pour lister toutes les fonctions possibles. Parmi elles, il est possible de formater l’affichage, en ajoutant ou soustrayant des champs, en modifiant l’ordre des lignes. Il est aussi possible d’arrêter une tâche (touche K), d’en faire redémarrer une autre (touche R).
La commande top indique depuis combien de temps la machine a démarré, la charge du système, le nombre de processus, l'utilisation de la mémoire et la répartition de la puissance du processeur. Vous pouvez également obtenir des informations supplémentaires sur chaque processus, y compris qui l’utilise et quelles commandes il met en œuvre.
- vmstat
La commande vmstat donne un aperçu de l'utilisation du processeur, des entrées/sorties, des processus et de la mémoire à intervalle régulier, indiqué en paramètre sous la forme d’un nombre de secondes. Par exemple :
$ vmstat 10
Cette commande permet de recevoir une mise à jour de l’état du système toutes les dix secondes. La commande vmstat continue d’afficher ses relevés tant que vous ne la stoppez pas avec la combinaison de touches Ctrl+C, ou jusqu’au délai maximum que vous lui aurez également indiqué en paramètre. Ce flux de relevés est souvent transféré vers un fichier texte à des fins d’analyse ultérieure.
Les deux premières colonnes montrent les processus : La colonne r représente les processus en attente d'exécution et la colonne b représente tous les processus en sommeil ininterrompu. Si vous avez un certain nombre de processus en attente ici, cela signifie que vous avez probablement un goulet d'étranglement quelque part.
Les quatre colonnes suivantes indiquent la mémoire : virtuelle, libre, tampon et cache. La colonne intitulée swap indique la quantité de mémoire virtuelle lue ou écrite sur le disque, tandis que la colonne io, compte les blocs reçus ou envoyés disque.
Les colonnes sous l'intitulé System contiennent le nombre d'interruptions et de basculement entre processus par seconde. Les cinq dernières colonnes, sous l’intitulé cpu, indiquent le pourcentage de temps CPU utilisé par cinq catégories de traitements :
us : les tâches de l'utilisateur ;
sy : le code du noyau ou du système ;
id : l'inactivité ;
wa : l'attente sur les entrées/sorties
st : le fonctionnement d’une machine virtuelle.
La commande vmstat permet d’appréhender les schémas d'utilisation du processeur. N'oubliez pas que chaque entrée est générée en fonction de l’intervalle indiqué : pour avoir un aperçu efficace des performances du processeur, mieux vaut se baser sur une liste assez longue.
- 3. iostat
La commande iostat fournit trois rapports : l'utilisation du processeur, l'utilisation des périphériques (essentiellement les disques locaux) et l'utilisation d’un système de fichiers en réseau. Si vous exécutez la commande sans aucun paramètre, elle affiche ces trois rapports. Pour spécifier ceux que l’on souhaite voir, il suffit d’utiliser les commutateurs -c, -d et -h, respectivement.
L'exemple ci-dessus comprend deux rapports, celui du CPU et des périphériques. Le premier répartit l'utilisation moyenne du CPU par catégorie en pourcentage. Il inclut également les processus utilisateur et les processus système, ainsi que les temps d'attente et d'inactivité des entrées-sorties.
Le second rapport montre chaque périphérique connecté à l'hôte et renvoie des informations sur les transferts par seconde ainsi que sur la quantité de blocs lus ou écrits. Il vous permet d'identifier les périphériques présentant des problèmes de performance. Vous pouvez afficher les statistiques en kilo-octets et méga-octets, plutôt qu'en blocs, avec les commutateurs -k ou -m, respectivement.
Le rapport sur l'utilisation du système de fichiers en réseau affiche des informations similaires à celles du rapport d'utilisation des périphériques.
- free
La commande free affiche des statistiques à la fois pour la mémoire principale et la mémoire swap. Vous pouvez afficher la quantité totale de mémoire en spécifiant le commutateur -t. Pour changer d'unité – des kilo-octets par défaut - utilisez le commutateur -b pour les octets et -m pour les méga-octets. Il est aussi possible de monitorer la mémoire en continu en précisant un intervalle en secondes avec la commutateur -s :
$ free -s 5
- sar
Le System Activity Report, ou sar, est un outil en ligne de commande pour la collecte, la visualisation et l'enregistrement des relevés de performance. Il dispose de plusieurs commutateurs pour personnaliser son affichage et il peut collecter/afficher des données sur des périodes plus longues que les autres commandes de monitoring des performances. Vous pouvez exécuter sar sans aucune option et obtenir le résultat suivant :
La présentation de base affiche des statistiques CPU toutes les 10 minutes et une moyenne à la fin. Cette moyenne est issue d'un fichier de statistiques quotidiennes que le système collecte et déploie toutes les 24 heures. Les fichiers sont stockés dans le répertoire /var/log/sa/ et nommés saxx, où xx est la date de collecte.
La commande sar permet également de collecter des statistiques sur la mémoire, les périphériques, le réseau et les blocs.
Pour spécifier les données à afficher, utilisez le commutateur -b pour les statistiques sur les périphériques blocs (les disques), le commutateur -n pour celles du réseau et le commutateur -r pour l'utilisation de la mémoire. Vous pouvez également spécifier le commutateur -A pour voir l’ensemble des métriques.
Afin de sauvegarder les métriques de sar à des fins d’analyse ultérieure, ajoutez le commutateur -o suivi d’un nom de fichier, l'intervalle de temps entre les collectes et le nombre d'intervalles à enregistrer. Si vous omettez le nombre d’intervalles, sar collectera les données sans s’arrêter :
$ sar -A -o /var/log/sar/sar.log 600 >/dev/null 2>&1 &
Avec cette commande, vous collectez des données sur tous les éléments (-A) dans un fichier /var/log/sar/sar.log, avec un relevé toutes les dix minutes (600 secondes) en continu, sans arrêt et en mettant ce processus en tâche de fond. Si vous voulez consulter les données enregistrées, utilisez le commutateur -f ainsi :
$ sar -A -f /var/log/sar/sar.log
Cette commande affiche toutes les données recueillies pendant le fonctionnement de sar. Notez qu’il existe également une version graphique, ksar, qui permet de représenter les relevés sous formes de courbes.
En plus de ces cinq commandes, consultez des outils tels que Munin et collectd, lesquels collectent des métriques sur les performances, les applications et les services. Ils supportent même des plugins pour monitorer telle ou telle application. Ces deux outils proposent par ailleurs des tableaux de bord graphiques.