GNU/Linux >> Tutoriels Linux >  >> Linux

Tutoriel de commande Linux vmstat pour les débutants (5 exemples)

Si vous recherchez un utilitaire de ligne de commande que vous pouvez utiliser pour accéder aux informations sur les processus, l'activité du processeur, la mémoire, etc., vous serez heureux de savoir que vmstat le fait pour vous.

Dans cet article, nous aborderons les bases de cet outil à l'aide d'exemples faciles à comprendre. Mais avant cela, il convient de mentionner que tous les exemples de cet article ont été testés sur une machine Ubuntu 20.04 LTS, mais cela fonctionnera également sur CentOS et Debian.

Commande Linux vmstat

La commande vmstat sous Linux fournit des statistiques sur la mémoire virtuelle. Voici sa syntaxe :

vmstat [options] [delay [count]]

Et voici comment la page de manuel de l'outil l'explique :

       vmstat  reports  information about processes, memory, paging, block IO,
       traps, disks and cpu activity.

       The first report produced gives averages since the last reboot.   Addi?
       tional  reports  give information on a sampling period of length delay.
       The process and memory reports are instantaneous in either case.

Voici quelques exemples sous forme de questions-réponses qui devraient vous donner une meilleure idée du fonctionnement de la commande vmstat :

Q1. Comment utiliser vmstat ?

Pour une utilisation de base, exécutez simplement "vmstat" sans aucune option.

vmstat

Par exemple, dans mon cas, la commande ci-dessus a produit le résultat suivant :

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 401160 100252 1307468    0    0     5    17   49   70  0  0 100  0  0

Comme l'indique la première ligne, la sortie est divisée en six sections. La page de manuel de l'outil contient des informations détaillées sur ces valeurs. Voici l'extrait :

Procs
       r: The number of runnable processes (running or waiting for run time).
       b: The number of processes in uninterruptible sleep.

   Memory
       swpd: the amount of virtual memory used.
       free: the amount of idle memory.
       buff: the amount of memory used as buffers.
       cache: the amount of memory used as cache.
       inact: the amount of inactive memory.  (-a option)
       active: the amount of active memory.  (-a option)

   Swap
       si: Amount of memory swapped in from disk (/s).
       so: Amount of memory swapped to disk (/s).

   IO
       bi: Blocks received from a block device (blocks/s).
       bo: Blocks sent to a block device (blocks/s).

   System
       in: The number of interrupts per second, including the clock.
       cs: The number of context switches per second.

   CPU
       These are percentages of total CPU time.
       us: Time spent running non-kernel code.  (user time, including nice time)
       sy: Time spent running kernel code.  (system time)
       id: Time spent idle.  Prior to Linux 2.5.41, this includes IO-wait time.
       wa: Time spent waiting for IO.  Prior to Linux 2.5.41, included in idle.
       st: Time stolen from a virtual machine.  Prior to Linux 2.6.11, unknown.

Q2. Comment faire en sorte que vmstat mette automatiquement à jour sa sortie ?

Par défaut, vmstat produit une sortie une seule fois. Cependant, si vous souhaitez que vmstat mette automatiquement à jour sa sortie, vous pouvez le faire en spécifiant une valeur numérique en entrée de la commande.

Cette valeur numérique agit comme un délai (en secondes) après lequel la sortie est mise à jour. Par exemple :

vmstat 3

De cette façon, la sortie vmstat sera actualisée toutes les 3 secondes.

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 410928 100276 1307480    0    0     5    17   49   70  0  0 100  0  0
 0  0      0 410920 100284 1307480    0    0     0   181  108  143  0  0 100  0  0
 0  0      0 410920 100292 1307480    0    0     0     7   92  132  0  0 100  0  0
 0  0      0 410920 100292 1307480    0    0     0     0   87  124  0  0 100  0  0
...
...
...

Q3. Comment faire en sorte que vmstat affiche slabinfo ?

Pour slabinfo, vous devez utiliser l'option de ligne de commande -m. Notez que le noyau de votre distribution Linux doit prendre en charge slabinfo pour que cette option fonctionne. Si l'assistance existe, vous devez exécuter la commande avec les autorisations sudo.

sudo vmstat -m

Par exemple, dans mon cas, voici un extrait de la sortie produite :

Cache                       Num  Total   Size  Pages
ufs_inode_cache               0      0    808     40
qnx4_inode_cache              0      0    680     48
hfsplus_attr_cache            0      0   3840      8
hfsplus_icache                0      0    896     36
hfs_inode_cache               0      0    832     39
minix_inode_cache             0      0    672     48
ntfs_big_inode_cache          0      0    960     34
ntfs_inode_cache              0      0    296     55
jfs_ip                        0      0   1280     25
xfs_dqtrx                     0      0    528     31
xfs_dquot                     0      0    496     33
xfs_buf                       0      0    384     42
xfs_rui_item                  0      0    696     47
xfs_rud_item                  0      0    176     46
xfs_inode                     0      0   1024     32
xfs_efd_item                  0      0    440     37
xfs_buf_item                  0      0    272     30
xfs_trans                     0      0    232     35
xfs_da_state                  0      0    480     34
xfs_btree_cur                 0      0    224     36
...
...
...

Q4. Comment faire en sorte que vmstat rapporte les statistiques récapitulatives de l'activité du disque ?

Utilisez l'option de ligne de commande -D pour cela.

vmstat -D

Voici le résultat produit par cette commande sur mon système :

           10 disks
            2 partitions
        15066 total reads
         5937 merged reads
      1272794 read sectors
        20063 milli reading
       155026 writes
       103687 merged writes
      4602472 written sectors
       105279 milli writing
            0 inprogress IO
          126 milli spent IO

Q5. Comment faire en sorte que vmstat ajoute un horodatage à chaque ligne de sortie ?

Pour vous assurer que la commande vmstat ajoute un horodatage à chaque ligne de sortie, utilisez la ligne de commande -t :

vmstat -t
$ vmstat 2 -t
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- -----timestamp-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st                 UTC
 2  0      0 410116 100432 1308160    0    0     5    17   49   70  0  0 100  0  0 2020-05-08 09:40:05
 0  0      0 410116 100432 1308160    0    0     0    88  100  136  0  0 100  0  0 2020-05-08 09:40:07
 0  0      0 410116 100440 1308160    0    0     0    18   90  139  0  0 100  0  0 2020-05-08 09:40:09
 0  0      0 410116 100440 1308160    0    0     0     0   93  126  0  0 100  0  0 2020-05-08 09:40:11
 0  0      0 410368 100448 1308160    0    0     0    10  107  144  0  0 100  0  0 2020-05-08 09:40:13
 0  0      0 410368 100448 1308160    0    0     0     0   86  122  0  0 100  0  0 2020-05-08 09:40:15
 0  0      0 410368 100448 1308160    0    0     0     0  101  135  0  0 100  0  0 2020-05-08 09:40:17

Les entrées en surbrillance affichent l'horodatage inclus dans chaque ligne.

Conclusion

Selon le type de travail que vous effectuez sur la ligne de commande Linux, la commande vmstat peut s'avérer très utile. Outre les options décrites ici, cet outil propose de nombreuses autres options de ligne de commande. Rendez-vous ici pour en savoir plus.


Linux
  1. Tutoriel de commande cd Linux pour les débutants (8 exemples)

  2. Tutoriel de commande Linux comm pour les débutants (5 exemples)

  3. Tutoriel de commande Linux df pour les débutants (8 exemples)

  4. Tutoriel de commande de date Linux pour les débutants (8 exemples)

  5. Tutoriel de commande de nom d'hôte Linux pour les débutants (5 exemples)

Tutoriel Linux who Command pour débutants (8 exemples)

Tutoriel de commande Linux nl pour les débutants (7 exemples)

Tutoriel de commande Linux nm pour les débutants (10 exemples)

Tutoriel de commande Linux OD pour les débutants (6 exemples)

Tutoriel de commande Linux w pour débutants (5 exemples)

Tutoriel de commande Linux ss pour les débutants (8 exemples)