Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 9822|Antwort: 1

Detaillierte Erklärung des Linux-Vmstat-Befehls in der Praxis

[Link kopieren]
Veröffentlicht am 19.10.2014 19:36:48 | | |

Der vmstat-Befehl ist das gebräuchlichste Linux/Unix-Überwachungstool, das die Zustandswerte eines Servers zu einem bestimmten Zeitintervall anzeigt, einschließlich der des ServersCPU-Auslastung, Speichernutzung, virtueller Speichertausch, IO-Lesen und Schreiben. Dieser Befehl ist mein Lieblingsbefehl, um Linux/Unix zu überprüfen, zum einen wird Linux/Unix unterstützt, und zum anderen sehe ich im Vergleich zum oberen die CPU-, Speicher- und IO-Auslastung der gesamten Maschine, anstatt nur die CPU- und Speichernutzung jedes Prozesses zu sehen (unterschiedliche Nutzungsszenarien).

Im Allgemeinen erfolgt die Verwendung des vmstat-Tools über zwei numerische Parameter: Der erste Parameter ist die Anzahl der abgetasteten Zeitintervalle, die Einheit sind Sekunden, und der zweite Parameter ist die Anzahl der Stichproben, wie zum Beispiel:


root@ubuntu:~# VMSTAT 2 1
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
1  0      0 3498472 315836 3819540    0    0     0     1    2    0  0  0 100  0

2 bedeutet, dass der Serverzustand alle zwei Sekunden eingesammelt wird, und 1 bedeutet, dass der Serverzustand nur einmal erfasst wird.

Tatsächlich überwachen wir während des Antragsprozesses eine gewisse Zeit, und wenn wir das nicht wollen, können wir den vmstat einfach direkt beenden, zum Beispiel:


root@ubuntu:~# VMSTAT 2  
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
1  0      0 3499840 315836 3819660    0    0     0     1    2    0  0  0 100  0
0  0      0 3499584 315836 3819660    0    0     0     0   88  158  0  0 100  0
0  0      0 3499708 315836 3819660    0    0     0     2   86  162  0  0 100  0
0  0      0 3499708 315836 3819660    0    0     0    10   81  151  0  0 100  0
1  0      0 3499732 315836 3819660    0    0     0     2   83  154  0  0 100  0

Das bedeutet, dass vmstat alle 2 Sekunden Daten sammelt und weiterläuft, bis ich das Programm beende, und ich beende das Programm nach fünfmaliger Datenerhebung hier.

Okay, der Befehl ist eingeführt, jetzt beginnen wir damit, die Bedeutung jedes Parameters zu erklären.

rDas bedeutet, die Warteschlange laufen zu lassen (also wie viele Prozesse tatsächlich der CPU zugeordnet sind), der von mir getestete Server ist derzeit relativ inaktiv, es laufen keine Programme, und wenn dieser Wert die CPU-Anzahl übersteigt, gibt es einen CPU-Engpass. Dies hängt auch mit der Belastung des Tops zusammen: In der Regel ist die Last höher, wenn sie 3 überschreitet, höher, wenn sie 5 überschreitet, und wenn sie 10 übersteigt, ist das nicht normal und der Zustand des Servers ist sehr gefährlich. Die Last des Decks ähnelt der einer laufenden Warteschlange pro Sekunde. Wenn die laufende Warteschlange zu groß ist, bedeutet das, dass deine CPU beschäftigt ist, was meist zu hoher CPU-Auslastung führt.

bEs bedeutet, dass der blockierte Prozess nicht viel gesagt wird, der Prozess ist blockiert, jeder versteht es.

SWPDWenn die Größe des verwendeten virtuellen Speichers größer als 0 ist, bedeutet das, dass Ihre Maschine nicht genügend physischen Speicher hat, und wenn dies nicht die Ursache für das Programm-Speicherlecks ist, ist es Zeit, den Speicher aufzurüsten oder die speicherverbrauchenden Aufgaben auf eine andere Maschine zu übertragen.

kostenlos   Die Größe des freien physischen Speichers, mein Rechnerspeicher beträgt insgesamt 8G und der Rest 3415M.

Buff   Das Linux/Unix-System wird verwendet, um Inhalte im Verzeichnis, Berechtigungen usw. zu speichern, ich nehme wahrscheinlich mehr als 300 Millionen auf diesem Rechner ein

CacheCache wird direkt verwendet, um die Dateien zu speichern, die wir öffnen, zu puffern, ich nehme mehr als 300 Millionen auf meinem eigenen Rechner ein (hier ist das Clevere von Linux/Unix: Einen Teil des freien physischen Speichers nutzen, um Dateien und Verzeichnisse zu cachen, um die Programmausführung zu verbessern; wenn das Programm Speicher nutzt, wird Buffer/Cached schnell verwendet). )

si  Wenn dieser Wert größer als 0 ist, bedeutet das, dass der physische Speicher nicht ausreicht oder der Speicher geleakt wird. Mein Rechner hat genug Speicher und alles ist in Ordnung.

Also  Die Größe der in den virtuellen Speicher geschriebenen Festplatte pro Sekunde, wenn dieser Wert größer als 0 ist, entspricht wie oben.

BI  BlockausrüstungDie Anzahl der pro Sekunde empfangenen Blöcke, hier bezieht sich das Blockgerät auf alle Festplatten und andere Blockgeräte im System, die Standardblockgröße beträgt 1024 Byte, ich habe keinen IO-Betrieb auf dem Rechner, also war es immer 0, aber ich habe es bei Rechnern gesehen, die große Datenmengen verarbeiten (2-3T), bis 140.000/s erreichen, und die Schreibgeschwindigkeit der Festplatte liegt bei fast 140 M pro Sekunde

BoDie Anzahl der Blöcke, die pro Sekunde von einem Blockgerät gesendet werden, ist zum Beispiel beim Lesen einer Datei größer als 0. Bi und Bo liegen in der Regel nahe bei 0, ansonsten ist der IO zu häufig und muss angepasst werden.

inDie Anzahl der Interrupts pro Sekunde der CPU, einschließlich Zeitinterrupts

CSDie Anzahl der Kontextwechsel pro Sekunde, zum Beispiel wenn wir eine Systemfunktion aufrufen, müssen wir den Kontext wechseln, und Thread-SwitchingProzesskontextZum Beispiel führen wir bei Webservern wie Apache und nginx in der Regel Leistungstests mit Tausenden oder sogar Zehntausenden von Nebenzeitigkeiten durch, und der Prozess der Auswahl eines Webservers kann durch den Höhepunkt des Prozesses oder Threads, Stresstests, reduziert werden, bis cs auf einen relativ kleinen Wert reduziert wird, wobei die Anzahl der Prozesse und Threads ein angemessenerer Wert ist. Systemaufrufe sind ebenfalls gleich: Jedes Mal, wenn eine Systemfunktion aufgerufen wird, gelangt unser Code in den Kernel-Raum, was zu einem Kontextwechsel führt, der sehr ressourcenintensiv ist, und wir sollten versuchen, häufige Aufrufe von Systemfunktionen zu vermeiden. Zu viele Kontextwechsel bedeuten, dass der Großteil deiner CPU für Kontextwechsel verschwendet wird, was zu weniger Zeit für ernsthafte Aufgaben für die CPU führt und die CPU nicht vollständig ausgelastet wird, was nicht ratsam ist.

WirBenutzerCPU-ZeitIch habe einmal gesehen, dass die US nahe 100 lag und die r-Running-Warteschlange auf einem Server 80 erreichte, der sehr häufig Verschlüsselung und Entschlüsselung durchführte (die Maschine wurde stressgetestet und die Performance war nicht gut).

SyWenn die CPU-Zeit des Systems zu hoch ist, bedeutet das, dass die Systemaufrufe lang sind, wie zum Beispiel häufige IO-Operationen.

id  Leerlauf-CPU-Zeit, allgemein gesprochen, id + us + sy = 100, denke ich, id ist die CPU-Nutzung im Leerlauf, us ist die CPU-Auslastung des Nutzers, sy ist die CPU-Auslastung des Systems.

WTWarte auf die IO-CPU-Zeit.







Vorhergehend:Süß
Nächster:Das Meer ist schön
Veröffentlicht am 19.10.2014 19:40:57 |
Ich kann nicht verstehen
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com