GNU/Linux >> Tutoriels Linux >  >> Linux

Utilisation de vmstat pour résoudre les problèmes de performances sous Linux

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)


Linux
  1. 24 Exemples iostat, vmstat et mpstat pour la surveillance des performances Linux

  2. Comment résoudre les problèmes de performances sous Linux - Guide du débutant

  3. Comment calculer l'utilisation de la mémoire sous Linux en utilisant sar, ps et free

  4. Commandes de base pour résoudre les problèmes de performances sous Linux

  5. Mémoire inactive Linux

Identifiez les goulots d'étranglement des performances Linux à l'aide d'outils open source

Utilisation de la commande gratuite Linux

Comment vérifier la mémoire partagée Linux à l'aide de la commande ipcs

Commande Linux vmstat - Outil pour rapporter les statistiques de la mémoire virtuelle

Dépanner et surveiller les performances du système Linux avec nmon

Un guide de la commande vmstat sous Linux