GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux-vmstat-Befehls-Tutorial für Anfänger (5 Beispiele)

Wenn Sie nach einem Befehlszeilendienstprogramm suchen, mit dem Sie auf Informationen zu Prozessen, CPU-Aktivität, Arbeitsspeicher und mehr zugreifen können, werden Sie froh sein, dass vmstat erledigt dies für Sie.

In diesem Artikel werden wir die Grundlagen dieses Tools anhand einiger leicht verständlicher Beispiele erörtern. Aber bevor wir das tun, ist es erwähnenswert, dass alle Beispiele in diesem Artikel auf einem Ubuntu 20.04 LTS-Rechner getestet wurden, aber es wird auch auf CentOS und Debian funktionieren.

Linux vmstat-Befehl

Der Befehl vmstat in Linux meldet Statistiken zum virtuellen Speicher. Es folgt die Syntax:

vmstat [options] [delay [count]]

Und so erklärt es die Manpage des Tools:

       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.

Im Folgenden finden Sie einige Beispiele im Q&A-Stil, die Ihnen eine bessere Vorstellung davon vermitteln sollen, wie der Befehl vmstat funktioniert:

Q1. Wie verwende ich vmstat?

Führen Sie für die grundlegende Verwendung einfach 'vmstat' ohne jede Option aus.

vmstat

In meinem Fall erzeugte der obige Befehl beispielsweise die folgende Ausgabe:

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

Wie die erste Zeile zeigt, ist die Ausgabe in sechs Abschnitte unterteilt. Die Manpage des Tools enthält detaillierte Informationen zu diesen Werten. Hier ist der Auszug:

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. Wie bringt man vmstat dazu, seine Ausgabe automatisch zu aktualisieren?

Standardmäßig erzeugt vmstat die Ausgabe einmal. Wenn Sie jedoch möchten, dass vmstat seine Ausgabe automatisch aktualisiert, können Sie dies tun, indem Sie einen numerischen Wert als Eingabe für den Befehl angeben.

Dieser numerische Wert dient als Verzögerung (in Sekunden), nach der der Ausgang aktualisiert wird. Zum Beispiel:

vmstat 3

Auf diese Weise wird die vmstat-Ausgabe alle 3 Sekunden aktualisiert.

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. Wie bringt man vmstat dazu, Slabinfo anzuzeigen?

Für slabinfo müssen Sie die Befehlszeilenoption -m verwenden. Beachten Sie, dass der Kernel Ihrer Linux-Distribution slabinfo unterstützen muss, damit diese Option funktioniert. Wenn Unterstützung vorhanden ist, müssen Sie den Befehl mit sudo-Berechtigungen ausführen.

sudo vmstat -m

In meinem Fall ist hier beispielsweise ein Auszug der erzeugten Ausgabe:

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. Wie bringt man vmstat dazu, eine Zusammenfassung der Festplattenaktivität zu melden?

Verwenden Sie dafür die Befehlszeilenoption -D.

vmstat -D

Hier ist die Ausgabe, die dieser Befehl auf meinem System erzeugt:

           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. Wie bringt man vmstat dazu, Zeitstempel an jede Ausgabezeile anzuhängen?

Um sicherzustellen, dass der vmstat-Befehl Zeitstempel an jede Ausgabezeile anhängt, verwenden Sie die -t-Befehlszeile:

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

Die hervorgehobenen Einträge zeigen den in jeder Zeile enthaltenen Zeitstempel.

Schlussfolgerung

Abhängig von der Art Ihrer Arbeit auf der Linux-Befehlszeile kann sich der Befehl vmstat als sehr hilfreich erweisen. Abgesehen von den hier besprochenen Optionen gibt es viele andere Befehlszeilenoptionen, die dieses Tool bietet. Gehen Sie hierher, um mehr zu erfahren.


Linux
  1. Linux-CD-Befehls-Tutorial für Anfänger (8 Beispiele)

  2. Linux-Kommando-Tutorial für Anfänger (5 Beispiele)

  3. Linux-df-Befehls-Tutorial für Anfänger (8 Beispiele)

  4. Linux Date Command Tutorial für Anfänger (8 Beispiele)

  5. Linux-Hostname-Befehls-Tutorial für Anfänger (5 Beispiele)

Linux Who Command Tutorial für Anfänger (8 Beispiele)

Linux nl Command Tutorial für Anfänger (7 Beispiele)

Linux-nm-Befehls-Tutorial für Anfänger (10 Beispiele)

Linux OD Command Tutorial für Anfänger (6 Beispiele)

Linux w Command Tutorial für Anfänger (5 Beispiele)

Linux ss Command Tutorial für Anfänger (8 Beispiele)