Le vmstat (statistiques de la mémoire virtuelle) La commande vous permet de surveiller l'utilisation de la mémoire de votre système. Il montre la quantité de mémoire virtuelle disponible, ainsi que la quantité d'activité libre et de pagination. Vous pouvez observer les entrées et les sorties de page au fur et à mesure qu'elles se produisent. Ceci est extrêmement utile pour détecter les pénuries de mémoire physique, qui peuvent nuire aux performances du système.
Exécuter vmstat sans aucun argument
Avant de commencer, il est important de noter que la première ligne de sortie de vmstat (et la seule donnée si elle est exécutée sans arguments) est un résumé depuis le démarrage du système. Ce n'est généralement pas très utile pour les problèmes de performances, surtout si le système est en place depuis longtemps. Cependant, il peut toujours contenir des informations utiles sur des événements qui se sont produits dans le passé, mais qui ne se produisent pas actuellement.
# vmstat procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 3 0 387560 62140 44 348320 1 2 94 20 90 15 1 1 98 0 0
Comment lire la sortie vmstat
La sortie vmstat contient plus que des statistiques de mémoire. Comme avec iostat et mpstat, vmstat accepte les arguments d'intervalle et de nombre. L'exemple suivant exécute 3 rapports à 5 secondes d'intervalle :
# vmstat 5 3 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 3 0 384120 68604 8088 327332 1 2 90 20 90 14 1 1 98 0 0 1 0 384120 68604 8088 327364 0 0 0 0 91 179 1 0 99 0 0 0 0 384120 68232 8088 327364 0 0 0 0 107 190 1 1 98 0 0
La sortie est divisée en six sections :
1. processus
2. mémoire
3. échanger
4. io
5. système
6. processeur
procs
Les deux premières colonnes donnent des informations sur les processus :
r | Nombre de processus en état d'attente. Ces processus ne font rien d'autre qu'attendre de s'exécuter. |
b | Nombre de processus qui étaient en mode veille et ont été interrompus depuis la dernière mise à jour |
mémoire
Les quatre colonnes suivantes donnent des informations sur la mémoire :
swpd | Quantité de mémoire virtuelle utilisée |
gratuit | Quantité de mémoire inactive |
buff | Quantité de mémoire utilisée comme tampons |
cache | Quantité de mémoire utilisée comme cache |
échanger
Les deux colonnes suivantes donnent des informations sur le swap :
si | Quantité de mémoire échangée depuis le disque (par seconde) |
donc | Quantité de mémoire échangée sur le disque (par seconde) |
si différent de zéro et ainsi les chiffres indiquent qu'il n'y a pas assez de mémoire physique et que le noyau échange de la mémoire sur le disque.
io
Les deux premières colonnes donnent des informations sur les entrées/sorties (entrées-sorties) :
bi | Nombre de blocs par seconde reçus d'un périphérique de bloc |
bo | Nombre de blocs par seconde envoyés à un périphérique de bloc |
système
Les deux colonnes suivantes donnent les informations système suivantes :
dans | Nombre d'interruptions par seconde, y compris l'horloge |
cs | Nombre de changements de contexte par seconde |
processeur
Les cinq dernières colonnes donnent les pourcentages du temps CPU total :
nous | Pourcentage de cycles CPU consacrés aux processus utilisateur |
sy | Pourcentage de cycles CPU consacrés aux processus système (noyau) |
identifiant | Pourcentage de cycles CPU passés en mode inactif |
wa | Pourcentage de cycles CPU passés en attente d'E/S |
er | Pourcentage de cycles CPU volés sur une machine virtuelle |
Options de ligne de commande
Des informations supplémentaires peuvent être incluses en fournissant différentes options à la commande vmstat. Certaines des options de ligne de commande sont répertoriées :
-a | Afficher la mémoire active et inactive. |
-f | Affiche le nombre de forks depuis le démarrage. |
-t | Ajouter un horodatage à la sortie. |
-d | Signaler les statistiques du disque. |
Goulets d'étranglement du processeur
Il existe deux domaines importants de la sortie vmstat qui concernent les performances du processeur. Le premier est le r colonne. Il s'agit de la première colonne de la sortie. Il contient une valeur qui correspond au nombre de threads qui se trouvaient dans la file d'attente d'exécution au cours de l'intervalle passé au cours duquel vmstat a été exécuté. Ces threads attendaient qu'un processeur soit disponible pour s'exécuter. Il existe plusieurs écoles de pensée sur le nombre maximal approprié ici, mais la plupart des gens conviennent que plus de 2 à 5 fois le nombre de processeurs sur le système montre un goulot d'étranglement (cette estimation doit être ajustée pour les processeurs multicœurs).
Le deuxième endroit où rechercher les données liées au processeur se trouve dans les colonnes de droite de la sortie. Il y a trois colonnes :heure us (utilisateur), heure sy (système) et heure id (inactivité). Ces trois éléments décomposent l'utilisation du temps CPU en pourcentages. Ils doivent totaliser 100 %. Idéalement, un processeur passera la plupart de son temps dans les catégories us et id. La catégorie sy fait référence au temps que le processeur passe à effectuer un travail au niveau du pilote/noyau. Ce temps est prélevé sur les applications des utilisateurs. Si les processeurs passent la plupart de leur temps dans cette catégorie, cela peut indiquer une commutation de contexte excessive en raison de goulots d'étranglement du processeur ou de la mémoire, de problèmes de verrouillage au niveau du noyau ou d'autres problèmes. Un système occupé affichera un pourcentage d'inactivité constant proche de zéro. Mais un système occupé ne signifie pas nécessairement que le système est surchargé.
Performances disque/E/S
L'utilitaire vmstat ne peut pas nous dire quels disques ont un goulot d'étranglement, mais il peut nous dire s'il y a un problème d'E/S global. La colonne importante dans la sortie est la colonne b (bloquée). Il fait référence au nombre de threads qui ont été bloqués ou qui attendaient l'achèvement des E/S au cours de l'intervalle passé. La colonne b doit être 0 la plupart du temps. S'il y a constamment un nombre différent de zéro dans cette colonne, vous pouvez approfondir vos recherches avec iostat.
Goulets d'étranglement de la mémoire
L'analyse des problèmes liés à la mémoire doit commencer par vérifier la quantité de mémoire libre dans la sortie vmstat, qui se trouve dans la 4e colonne. Si la mémoire libre est faible, nous devons en savoir plus sur le processus qui consomme le plus de mémoire.
Conclusion
La commande vmstat peut être un outil utile pour trier les problèmes de performances. Il peut vous indiquer les sous-systèmes à examiner de plus près pour mieux diagnostiquer le problème.
Utilisation d'iostat pour surveiller les performances du système sous Linux (exemples inclus)