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

Verwenden von vmstat zum Beheben von Leistungsproblemen unter Linux

Die vmstat (virtuelle Speicherstatistik) Mit dem Befehl können Sie die Speichernutzung Ihres Systems überwachen. Es zeigt, wie viel virtueller Speicher vorhanden ist und wie viel frei ist und wie viel Paging-Aktivität vorhanden ist. Sie können Page-Ins und Page-Outs beobachten, während sie passieren. Dies ist äußerst nützlich, um Engpässe im physischen Speicher zu erkennen, die die Systemleistung beeinträchtigen können.

vmstat ohne Argumente ausführen

Bevor Sie beginnen, ist es wichtig zu beachten, dass die erste Zeile der Ausgabe von vmstat (und die einzige, die ausgegeben wird, wenn es ohne Argumente ausgeführt wird) eine Zusammenfassung seit der Systemstartzeit ist. Bei Leistungsproblemen ist es normalerweise nicht sehr nützlich, insbesondere wenn das System schon lange in Betrieb ist. Es kann jedoch immer noch hilfreiche Informationen zu Ereignissen enthalten, die in der Vergangenheit stattgefunden haben, aber derzeit nicht stattfinden.

# 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

Lesen der vmstat-Ausgabe

Die vmstat-Ausgabe enthält mehr als nur Speicherstatistiken. Wie bei iostat und mpstat akzeptiert vmstat Intervall- und Anzahlargumente. Das folgende Beispiel führt 3 Berichte im Abstand von 5 Sekunden aus:

# 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

Die Ausgabe ist in sechs Abschnitte unterteilt:
1. Prozesse
2. Erinnerung
3. tauschen
4. io
5. System
6. CPU

Prozesse

Die ersten beiden Spalten geben Auskunft über Prozesse:

r Anzahl der Prozesse, die sich im Wartezustand befinden. Diese Prozesse tun nichts anderes, als darauf zu warten, ausgeführt zu werden.
b Anzahl der Prozesse, die sich im Schlafmodus befanden und seit dem letzten Update unterbrochen wurden

Erinnerung

Die nächsten vier Spalten geben Auskunft über den Speicher:

swpd Menge des verwendeten virtuellen Speichers
kostenlos Menge an ungenutztem Speicher
buff Speichermenge, die als Puffer verwendet wird
zwischenspeichern Speichermenge, die als Cache verwendet wird

tauschen

Die nächsten zwei Spalten geben Informationen über Swap:

si Speichermenge, die von der Festplatte ausgelagert wird (pro Sekunde)
also Auf die Festplatte ausgelagerter Arbeitsspeicher (pro Sekunde)

si ungleich Null und also Zahlen zeigen an, dass nicht genügend physischer Speicher vorhanden ist und dass der Kernel Speicher auf Festplatte auslagert.

io

Die ersten beiden Spalten geben Auskunft über I/O (Input-Output):

bi Anzahl der Blöcke pro Sekunde, die von einem Blockgerät empfangen werden
bo Anzahl der Blöcke pro Sekunde, die an ein Blockgerät gesendet werden

System

Die nächsten beiden Spalten enthalten die folgenden Systeminformationen:

in Anzahl der Interrupts pro Sekunde, einschließlich der Uhr
cs Anzahl der Kontextwechsel pro Sekunde

Prozessor

Die letzten fünf Spalten geben die Prozentsätze der gesamten CPU-Zeit an:

uns Prozentsatz der für Benutzerprozesse aufgewendeten CPU-Zyklen
sy Prozentsatz der für System-(Kernel-)Prozesse aufgewendeten CPU-Zyklen
id Prozentsatz der im Leerlauf verbrachten CPU-Zyklen
wa Prozentsatz der CPU-Zyklen, die mit dem Warten auf E/A verbracht wurden
st Prozentsatz der von einer virtuellen Maschine gestohlenen CPU-Zyklen

Befehlszeilenoptionen

Zusätzliche Informationen können eingeschlossen werden, indem verschiedene Optionen für den vmstat-Befehl bereitgestellt werden. Einige der Befehlszeilenoptionen sind aufgeführt:

-a Aktiven und inaktiven Speicher anzeigen.
-f Zeigt die Anzahl der Forks seit dem Booten an.
-t Fügen Sie der Ausgabe einen Zeitstempel hinzu.
-d Disk-Statistik melden.

CPU-Engpässe

Es gibt zwei wichtige Bereiche der vmstat-Ausgabe, die sich auf die CPU-Leistung beziehen. Das erste ist das r Säule. Es ist die erste Spalte in der Ausgabe. Es enthält einen Wert, der der Anzahl der Threads entspricht, die sich während des letzten Intervalls, in dem vmstat ausgeführt wurde, in der Ausführungswarteschlange befanden. Diese Threads warteten darauf, dass eine CPU verfügbar wurde, um ausgeführt zu werden. Es gibt mehrere Denkrichtungen zur maximalen Anzahl, die hier angemessen ist, aber die meisten Menschen sind sich einig, dass mehr als das 2- bis 5-fache der Anzahl der CPUs im System einen Engpass darstellt (diese Schätzung muss für Mehrkern-CPUs angepasst werden).

Der zweite Ort, an dem Sie nach CPU-bezogenen Daten suchen, befinden sich in den rechten Spalten der Ausgabe. Es gibt drei Spalten:us (Benutzer) Zeit, sy (System) Zeit und id (Leerlauf) Zeit. Diese drei schlüsseln die Nutzung der CPU-Zeit in Prozent auf. Sie sollten sich zu 100 % addieren. Idealerweise verbringt eine CPU die meiste Zeit in den Kategorien us und id. Die Kategorie sy bezieht sich auf die Zeit, die die CPU mit der Arbeit auf Treiber-/Kernel-Ebene verbringt. Diese Zeit wird den Benutzeranwendungen entzogen. Wenn die CPUs die meiste Zeit in dieser Kategorie verbringen, könnte dies auf übermäßige Kontextwechsel aufgrund von CPU- oder Speicherengpässen, Problemen mit Sperren auf Kernelebene oder anderen Problemen hindeuten. Ein ausgelastetes System zeigt einen konstanten Leerlaufprozentsatz nahe Null. Aber ein ausgelastetes System bedeutet nicht unbedingt, dass das System überlastet ist.

Festplatten-/IO-Leistung

Das Dienstprogramm vmstat kann uns nicht sagen, welche Festplatten einen Engpass haben, aber es kann uns sagen, ob insgesamt ein IO-Problem vorliegt. Die wichtige Spalte in der Ausgabe ist die Spalte b (blockiert). Es bezieht sich auf die Anzahl der Threads, die im vergangenen Intervall blockiert wurden oder auf die E/A-Vervollständigung gewartet haben. Die b-Spalte sollte die meiste Zeit 0 sein. Wenn in dieser Spalte ständig eine Zahl ungleich Null steht, können Sie mit iostat weiter nachforschen.

Speicherengpässe

Die Analyse von speicherbezogenen Problemen sollte mit der Überprüfung der Menge an freiem Speicher in der vmstat-Ausgabe beginnen, die sich in der 4. Spalte befindet. Wenn der freie Speicher gering ist, müssen wir genauer untersuchen, welcher Prozess mehr Speicher verbraucht.

Schlussfolgerung

Der vmstat-Befehl kann ein nützliches Tool zur Sichtung von Leistungsproblemen sein. Es kann Ihnen mitteilen, welche Subsysteme genauer untersucht werden müssen, um das Problem weiter zu diagnostizieren.

Verwendung von iostat zur Überwachung der Systemleistung unter Linux (Beispiele enthalten)


Linux
  1. Fehlerbehebung mit dem proc-Dateisystem unter Linux

  2. Linux-Speichernutzung

  3. 24 iostat-, vmstat- und mpstat-Beispiele für die Linux-Leistungsüberwachung

  4. So berechnen Sie die Speichernutzung in Linux mit sar, ps und free

  5. dd-Leistung unter Mac OS X im Vergleich zu Linux

Identifizieren Sie Linux-Leistungsengpässe mit Open-Source-Tools

Verwenden des kostenlosen Linux-Befehls

So überprüfen Sie den gemeinsam genutzten Linux-Speicher mit dem ipcs-Befehl

Linux-vmstat-Befehl – ​​Tool zum Berichten von Statistiken zum virtuellen Speicher

Beheben und überwachen Sie die Linux-Systemleistung mit nmon

Eine Anleitung zum vmstat-Befehl in Linux