Commande Linux Vmstat

Commande Linux Vmstat



Dans ce guide, nous démontrerons les différentes manières d'utiliser la commande « vmstat » sous Linux.

Conditions préalables:

Pour effectuer les étapes illustrées dans ce guide, vous avez besoin des composants suivants :

Mémoire virtuelle sous Linux

La mémoire physique, également appelée RAM, est limitée en quantité. Le noyau est responsable de la distribution de cet espace à tous les programmes en cours d'exécution. Tous les programmes en cours d'exécution (y compris le système d'exploitation) résident dans la RAM.







Cependant, si la demande de mémoire est supérieure à la mémoire disponible, le système plante simplement (ou le programme demandera plus d'espace mémoire). Dans la plupart des situations, c’est un résultat indésirable. C'est là qu'intervient la mémoire virtuelle.



La mémoire virtuelle fait référence à un espace disque dédié sur votre disque dur/SSD qui peut servir de mémoire supplémentaire dans des situations difficiles. Parce qu’il fait office d’espace RAM (mais pas vraiment), il est considéré comme « virtuel ». Dans les systèmes UNIX/Linux, ces espaces sont appelés espaces d'échange.



Le noyau Linux déplace les blocs de mémoire dans l'espace d'échange et les récupère dans la RAM si nécessaire.





Les performances de la mémoire virtuelle sont nettement plus lentes que celles de la mémoire physique et sont directement proportionnelles aux performances du périphérique de stockage. Cependant, dans des configurations matérielles spécifiques (utilisant un SSD NVMe par exemple), les performances peuvent être équivalentes à celles de la RAM.

La commande Vmstat

La commande « vmstat » est un outil de surveillance qui rapporte diverses informations sur la mémoire virtuelle. Il est disponible sur tous les systèmes Linux dans le cadre du package « sysstat ».



La structure de commande de « vmstat » est la suivante :

$ vmstat < choix > < retard > < compter >

Utilisation de base

S'il est exécuté sans aucun paramètre, « vmstat » affiche les informations système depuis le dernier démarrage :

$ vmstat

La sortie est organisée en six segments :

  • processus : Statistiques des processus en cours d'exécution
    • r : Nombre de processus actifs
    • b : Nombre de processus de sommeil
  • mémoire : Statistiques sur l'utilisation de la mémoire
    • swpd : Quantité totale de mémoire virtuelle (espace d'échange)
    • gratuit : Espace d'échange disponible
    • chamois : La quantité d'espace d'échange utilisée comme mémoire tampon temporaire
    • cache : Mémoire cache totale
  • échanger : Statistiques sur l'espace d'échange
    • Ouais : Taux d'échange
    • donc : Taux de remplacement
  • ce : statistiques d'E/S
    • avec un : Nombre de blocs reçus du ou des périphériques de bloc
    • être : Nombre de blocs envoyés au(x) périphérique(s) de blocage
  • système : Statistiques sur les plannings
    • dans : Nombre d'interruptions système
    • cs : Taux de changements de contexte
  • CPU : Diverses statistiques du processeur
    • nous  : Le processeur passe du temps sur des processus hors noyau
    • et : Le processeur consacre du temps aux processus du noyau
    • identifiant  : Le processeur passe du temps au ralenti
    • de  : Le processeur passe du temps à attendre la fin des opérations d'E/S
    • St : Temps CPU utilisé par une machine virtuelle

Changer l'unité d'affichage

Par défaut, « vmstat » rapporte les valeurs de mémoire en kilo-octets. Pour changer d'unité, utilisez le ' -S ' drapeau:

$ vmstat -S < argument >

Ici, « vmstat » imprime les valeurs en mégaoctets.

Plusieurs unités de mémoire sont disponibles :

  • M. : 1048576 octets (2 ^ 20 octets)
  • m : 1 000 000 octets (1 000 kilo-octets)
  • K : 1024 octets (1 mégaoctet)
  • k : 1000 octets (1 kilo-octet)

Mise à jour continue des statistiques

Par défaut, « vmstat » imprime le rapport une fois. Cependant, nous pouvons demander à « vmstat » de fournir des rapports continus à un intervalle de temps spécifié (en secondes).

La structure des commandes est la suivante :

$ vmstat < retard >

Par exemple, pour obtenir les statistiques mises à jour toutes les 2 secondes, la commande est la suivante :

$ vmstat 2

La sortie ne s’arrêtera que si elle est terminée manuellement à l’aide de « Ctrl + C ».

Alternativement, nous pouvons spécifier « vmstat » pour fournir les statistiques un nombre de fois spécifique :

$ vmstat < retard > < compter >

Par exemple, pour obtenir les statistiques mises à jour toutes les 2 secondes 5 fois, la commande ressemble à ceci :

$ vmstat 2 5

Mémoire active et inactive

La mémoire active fait référence à l’espace mémoire actuellement utilisé par un processus. D’un autre côté, la mémoire inactive fait référence à l’espace mémoire attribué à un processus qui n’est plus en cours d’exécution.

En utilisant « vmstat », nous pouvons vérifier la quantité de mémoires actives et inactives utilisées :

$ vmstat -un

Ici, les colonnes « buff » et « cache » sont remplacées respectivement par les colonnes « inact » et « active ».

Mémoire et planification

Pour obtenir un rapport plus détaillé sur la mémoire et la planification, utilisez la commande suivante :

$ vmstat -s

Ici:

  • Section 1 : Cette section traite des informations de base du système telles que la mémoire physique totale, la mémoire active/inactive, la mémoire libre/tampon/cache, etc.
  • Section 2 : Diverses statistiques du processeur
    • Ticks CPU non sympas : Combien de fois les processus hautement prioritaires ont utilisé le CPU.
    • Bons ticks CPU : nombre de fois où les processus de priorité inférieure ont utilisé le processeur.
    • Tiques du processeur système : Le nombre de fois où les processus du noyau ont utilisé le CPU.
    • Tiques de processeur inactif : Le nombre de fois où le processeur est resté inactif.
    • Ticks du processeur d'attente d'E/S : Le nombre de fois où le CPU attend la gestion des E/S.
    • IRQ : Le nombre de fois où le CPU a reçu les demandes d'interruption.
    • softirq : Le nombre de fois où le CPU a reçu des demandes d'interruption logicielle.
    • ticks de processeur volés : nombre de fois où les machines virtuelles ont volé le temps CPU.
  • Section 3 : Statistiques de pagination de la mémoire
  • Section 4 : Compteurs d'événements

Fourches depuis le démarrage

Les forks font référence à des processus générés par des processus existants. Pour obtenir les statistiques sur le nombre de forks, exécutez la commande suivante :

$ vmstat -F

Statistiques de disque et de partition

La commande « vmstat » peut également fournir des informations sur l'activité du disque. Pour obtenir un résumé rapide de l'activité du disque, exécutez la commande suivante :

$ vmstat -D

Pour obtenir un rapport d'activité du disque plus détaillé (y compris les statistiques de lecture/écriture), utilisez plutôt la commande suivante :

$ vmstat -d

Ici:

  • Lit
    • total : Nombre total de lectures sur disque
    • fusionné  : Nombre total de lectures du groupe
    • secteurs : Nombre total de secteurs lus
    • MS : Durée totale de lecture des données du disque (en millisecondes)
  • Écrit
    • total : Nombre total d'écritures sur le disque
    • fusionné : Nombre total d'écritures du groupe
    • secteurs : Nombre total de secteurs écrits
    • MS : Durée totale d'écriture sur le disque (en millisecondes)
  • IO
    • mettre  : Total actuel des lectures/écritures sur le disque
    • seconde : Temps passé en opération de lecture/écriture en cours (en secondes)

La commande « vmstat » peut également générer des rapports pour une partition de disque spécifique. Pour obtenir le rapport de partition, utilisez la structure de commande suivante :

$ vmstat -p < identificateur_partition >

Statistiques de dalle

L'allocation de dalle est conçue pour être un mécanisme efficace pour l'allocation de mémoire des objets. Par rapport aux mécanismes précédents, l’allocation slab offre une réduction de la fragmentation de la mémoire (causée par l’allocation et la désallocation de mémoire).

Pour vérifier les statistiques de dalle du système, utilisez la commande « vmstat » suivante :

$ sudo vmstat -m

Notez qu'il nécessite une autorisation root pour afficher les statistiques.

Ici:

  • Cache : Nom des données mises en cache
  • sur une : Nombre d'objets actifs dans le cache Num
  • Total  : nombre total d'objets dans un cache particulier
  • Taille : Taille des objets mis en cache
  • Pages : Nombre de pages mémoire contenant les objets mis en cache

Conclusion

Dans ce guide, nous avons présenté les différentes manières d'utiliser la commande « vmstat ». Outre la mémoire virtuelle, « vmstat » peut également générer des rapports sur les statistiques du disque, les forks, les slabs, etc.

Vous souhaitez en savoir plus sur d’autres outils de surveillance du système ? En savoir plus sur htop , tuer , ps , etc.

Bonne informatique !