vmstat

Dieser Befehl liefert mehrere Statistikdaten zum System. Der Befehl vmstat meldet Statistikdaten zu Kernel-Threads in der Warteschlange zum Ausführen und Warten, zum Speicher-Paging, zu Unterbrechungen, Systemaufrufen, Kontextwechseln und zur CPU-Aktivität zurück.

Die CPU-Aktivität ist die prozentuale Aufteilung von Benutzermodus, Systemmodus, Leerlaufzeit und Warten auf Platten-E/A.

Die allgemeine Syntax dieses Befehls lautet:
vmstat  <time_between_samples_in_seconds> <number_of_samples> -t
Die Ausgabe sieht typischerweise wie folgt aus:
kthr     memory             page              faults        cpu        time
----- ----------- ------------------------ ------------ ----------- --------
 r  b   avm   fre  re  pi  po  fr   sr  cy  in   sy  cs us sy id wa hr mi se
 0  0 45483   221   0   0   0   0    1   0 224  326 362 24  7 69  0 15:10:22
 0  0 45483   220   0   0   0   0    0   0 159   83  53  1  1 98  0 15:10:23
 2  0 45483   220   0   0   0   0    0   0 145  115  46  0  9 90  1 15:10:24
Achten Sie in dieser Ausgabe auf Folgendes:
  • Steigende Werte in den Spalten r (Ausführungswarteschlange) und b (blockiert), besonders über 10. Dieser Anstieg weist für gewöhnlich darauf hin, dass die CPU von zu viele Prozessen in Anspruch genommen wird.
  • Werte in den Spalten pi, po (Seite ein/aus), die ungleich null sind und möglicherweise darauf hinweisen, dass Sie Paging-Prozesse ausführen und mehr Speicher benötigen. Möglicherweise haben Sie die Stackgröße für einige Ihrer JVM-Instanzen zu hoch eingestellt.
  • Stark ansteigende cs (Kontaktwechsel) im Vergleich zur Anzahl der Prozesse. Eventuell müssen Sie das System mit dem Befehl vmtune optimieren.
  • Im CPU-Bereich gibt us (Benutzerzeit) die Zeit an, die in Programmen aufgewendet wird. Wenn Java™ der erste in der Liste in tprof ist, müssen Sie die Java-Anwendung optimieren. Wenn im CPU-Bereich sys (Systemzeit) höher ist als erwartet und noch Leerlaufzeit (id) vorhanden ist, liegt möglicherweise ein Sperrenkonflikt vor. Prüfen Sie 'tprof' auf sperrenbezogene Aufrufe in der Kernelzeit. Probieren Sie mehrere Instanzen des JVM aus.
  • Das Flag -t, das am Ende der Zeile die Uhrzeit für jeden Beispielcode hinzufügt.