Heim  >  Artikel  >  System-Tutorial  >  So verwenden Sie den Befehl vmstat unter Linux

So verwenden Sie den Befehl vmstat unter Linux

WBOY
WBOYnach vorne
2024-02-14 23:09:02796Durchsuche

vmstat ist die Abkürzung für virtual memory statistics Es ist ein sehr nützliches Überwachungstool unter Linux, das zusätzlich zum Speicher auch zusätzliche Informationen wie Block-IO und CPU-Zeit bereitstellt

Grammatik

Die Ausführung des vmstat-Befehls erfordert keine besonderen Berechtigungen und kann von normalen Benutzern ausgeführt werden. Die Syntax lautet wie folgt:
vmstat [options] [delay [count]]

stellt das Datenaktualisierungsintervall in Sekunden dar. Wenn dieser Wert nicht angegeben ist, stellt er die durchschnittliche Zeit seit dem Systemstart dar und das Ergebnis wird zu diesem Zeitpunkt nur einmal ausgegeben

delaycount stellt die Anzahl der Ausgänge dar. Wenn dieser Wert nicht angegeben ist, aber der Wert von

angegeben ist, bedeutet dies unbegrenzte Zeiten

count 表示输出次数,如果没有指定该值,但是指定了 delay

Ergebnisfeldbeschreibung

Geben Sie

in die Befehlszeile ein und drücken Sie die Eingabetaste. Das Ergebnis wird einmal ausgegeben

[root@cghost22 ~]# 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      0 991324    932 537336    0    0     0     0    3    4  0  0 100  0  0
[root@cghost22 ~]#
vmstatDie Ergebnisse enthalten viele Felder. In der folgenden Tabelle ist die detaillierte Beschreibung jedes Felds aufgeführt

Feld Anleitung
r Die Anzahl der ausführbaren Prozesse, einschließlich Ausführungs- und Bereitschaftsstatus
b Anzahl der Prozesse im ununterbrochenen Ruhezustand
swpd Virtuelle Speichernutzung
kostenlos Freier Speicher
buff Speichermenge, die als Puffer verwendet wird
Cache Als Cache verwendete Speichermenge
si Die von der Festplatte ausgelagerte Speichermenge
also Vom Speicher auf die Festplatte ausgelagerte Menge
bi Vom Blockgerät empfangene Blöcke, Einheit: Blöcke/Sekunde
bo An das Blockgerät gesendete Blöcke, Einheit: Blöcke/Sekunde
in Anzahl der Interrupts pro Sekunde, einschließlich Taktinterrupts
cs Kontextwechsel pro Sekunde
uns Ausführungszeit im Benutzermodus
sy Ausführungszeit im Kernelmodus
id CPU-Leerlaufzeit
wa Wartezeit für IO
st Zeit von virtuellen Maschinen gestohlen

Die zweite Zeile in der Tabelle 处于不可中断睡眠状态的进程数量, ununterbrochen bezieht sich hier auf den Zustand, in den ein Prozess eintritt, wenn er bestimmte Systemaufrufe ausführt. In diesem Zustand ist der Prozess blockiert und kann nicht unterbrochen werden, bis der Systemaufruf abgeschlossen ist

Die Feldergebnisse sind je nach Farbe von oben nach unten in mehrere Teile unterteilt: Prozessinformationen, Speicherinformationen, IO-Informationen, Systeminterrupt und -kontext, CPU-Zeit

Die Standardeinheit des Werts in den Speicherinformationen ist KB (1024 kByte). Das Feld „CPU-Zeit“ stellt nicht die spezifische Zeit dar, sondern einen Prozentsatz der gesamten CPU-Zeit

Allgemeine Optionen

Optionen Anleitung
-a Aktiven und inaktiven Speicher anzeigen
-f Die Anzahl der Forks seit dem Systemstart, einschließlich Systemaufrufen wie Fork, Vfork und Clone
-s Zeigen Sie die Anzahl der Systemereignisse und die Speicherstatistik an
-d Datenträgerstatistiken melden
-D Statistiken zu aktiven Festplatteninformationen
-p Details der angegebenen Partition
-t Fügen Sie eine Spalte für die Zeitanzeige hinzu
-S Anzeige entsprechend der angegebenen Byte-Einheit
-w Ergebnisse werden im Breitbildmodus angezeigt
-V vmstat-Version

常见用法

vmstat 命令主要用于识别系统的瓶颈,统计数据的时候,它不会包含自身进程

  • 按照指定时间间隔和次数输出
[root@cghost22 ~]$ vmstat 2 10
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0  12552 148356 234324 3382956    0    0     1    21    4    4  2  2 97  0  0
 1  0  12552 148264 234324 3382980    0    0     0     0 14974 27478  3  2 96  0  0
 1  0  12552 148232 234324 3382984    0    0     0    14 14384 27181  3  2 96  0  0
 0  0  12552 148376 234332 3383052    0    0     0   204 14197 26812  4  2 94  0  0
 0  0  12552 148512 234332 3383088    0    0     0     4 14398 27155  3  2 95  0  0
 0  0  12552 147892 234332 3383128    0    0     0   210 15515 28802  3  2 95  0  0
 1  0  12552 148388 234332 3383156    0    0     0     0 15147 28042  3  2 95  0  0
 0  0  12552 148264 234332 3383168    0    0     0     4 14380 27395  3  1 96  0  0
 0  0  12552 148264 234336 3383216    0    0     0   198 14430 27008  3  1 95  0  0
 2  0  12552 148140 234336 3383252    0    0     0     6 14233 27161  3  2 95  0  0

2 表示每隔 2 秒输出一次结果,10 表示总共输出 10 次,10 次之后程序自动结束

  • 修改内存显示单位

输出的结果中,内存数据的单位默认是 KB,可以通过 -S 选项调整显示的单位,有下面几种单位可供选择

注意:-S 选项对 si、 so 字段无效

k    # 1000 bytes
K    # 1024 bytes
m    # 1000 * 1000 bytes
M    # 1024 * 1024 bytes
Linux 下如何使用 vmstat 命令

上图中第一个结果中内存数据显示单位是 KB , 第二个结果中单位是 MB,将第一个结果对应字段的数值除以 1024 就得到了第二个结果

  • 活跃内存和非活跃内存
Linux 下如何使用 vmstat 命令

inact 是非活跃内存,active 是活跃内存

活跃内存是进程在使用的内存,非活跃内存是未运行进程的内存

  • 系统启动以来 fork 的数量

这里的 fork 数量包括 fork、vfork 以及 clone 等系统调用

[root@cghost22 ~]# vmstat -f
        12714 forks
[root@cghost22 ~]# vmstat -f
        12715 forks
[root@cghost22 ~]# vmstat -f
        12716 forks

我们每次在控制台执行一次命令,系统就会 fork 一个新的进程来执行命令,比如像上面的例子,每执行一次 vmstat -f 命令,系统就会 fork 一个新进程

这个选项还可以用于统计某个操作消耗多少次 fork 调用,只需要在操作前后各执行一次 vmstat -f 命令,比较两次结果的差值即可

  • 每行追加一列时间

追加一列时间显示,有助于比较一段时间内的结果

Linux 下如何使用 vmstat 命令
  • 按照宽模式显示

vmstat 结果中的某些字段的数字有时会比较长,而且跟字段名的位置有偏差, 不太适合人类的观看习惯,-w 选项可以按照宽模式显示数据,使结果看起来更直观,下图是分别未使用宽模式和使用了宽模式的一个对比

Linux 下如何使用 vmstat 命令
  • 统计磁盘信息
Linux 下如何使用 vmstat 命令

磁盘信息主要分三个方面:读、写、IO ,读和写以毫秒为单位,IO以秒为单位

读
    total:     成功读取的总数
    merged:    分组读取(产生一个 IO)
    sectors:   成功读取的扇区数
    ms:        读取花费的毫秒
    
写
    total:      成功写入的总数
    merged:     分组写入(产生一个 IO)
    sectors:    成功写入的扇区数
    ms:         写花费的毫秒
    
IO
    cur:    正在进行的IO
    s:      IO花费的秒数
  • 指定磁盘分区信息
Linux 下如何使用 vmstat 命令

上图中,输出结果显示 sda3 分区设备的信息,它们包括:读计数、读取的扇区数,写计数,分区写请求总数

Das obige ist der detaillierte Inhalt vonSo verwenden Sie den Befehl vmstat unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:lxlinux.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen