So verwenden Sie den vmstat-Befehl unter Linux

Terminal-Eingabeaufforderung auf einem Linux-Desktop

Fatmawati Achmad Zaenuri/Shutterstock.com



Ihr Linux- oder macOS-Computer verwendet virtuellen Speicher. Finden Sie heraus, wie sich dies auf die Nutzung von physischem Speicher, CPU und Festplattenressourcen durch Ihr System auswirkt.

Was ist virtueller Speicher?

Ihr Computer ist mit einer begrenzten Menge an physischem Speicher ausgestattet, der als bezeichnet wird Arbeitsspeicher (RAM). Dieser RAM muss vom Kernel verwaltet und zwischen dem Betriebssystem und allen gerade laufenden Anwendungen geteilt werden. Wenn diese kombinierten Anforderungen mehr Speicher erfordern, als physisch auf Ihrem Computer installiert ist, was kann der Kernel tun?





Linux und Unix-ähnlich Betriebssysteme wie macOS können Speicherplatz auf Ihrer Festplatte verwenden, um den Speicherbedarf zu verwalten. Ein reservierter Bereich des Festplattenspeichers, der als Swap-Speicher bezeichnet wird, kann wie eine Erweiterung des Arbeitsspeichers verwendet werden. Dies ist virtueller Speicher.

Der Linux-Kernel kann den Inhalt eines Speicherblocks in den Auslagerungsbereich schreiben und diesen RAM-Bereich für die Verwendung durch einen anderen Prozess freigeben. Der ausgelagerte – auch ausgelagerte – Speicher kann bei Bedarf aus dem Auslagerungsbereich abgerufen und im RAM wiederhergestellt werden.



Natürlich ist die Zugriffsgeschwindigkeit für ausgelagerten Speicher langsamer als die von im RAM gehaltenem Speicher. Und das ist nicht der einzige Kompromiss. Während virtueller Speicher Linux eine Möglichkeit bietet, seinen Speicherbedarf zu verwalten, stellt die Verwendung von virtuellem Speicher an anderer Stelle des Computers eine erhöhte Belastung dar.

Anzeige

Ihre Festplatte muss mehr Lese- und Schreibvorgänge ausführen. Der Kernel – und damit die CPU – muss mehr Arbeit leisten, da er Speicher aus- und einlagert und alle Platten am Laufen hält, um den Speicherbedarf der verschiedenen Prozesse zu decken.

Linux bietet Ihnen die Möglichkeit, all diese Aktivitäten in Form des |_+_| . zu überwachen Befehl, der berichtet über Statistiken zum virtuellen Speicher .



Der vmstat-Befehl

Wenn Sie |_+_| . eingeben als Befehl ohne Parameter zeigt es Ihnen eine Reihe von Werten an. Diese Werte sind die Durchschnitte für jede der Statistiken seit dem letzten Neustart Ihres Computers. Diese Zahlen sind keine Momentaufnahme der aktuellen Werte.

vmstat

Eine kurze Wertetabelle wird angezeigt.

Es gibt Spalten mit den Überschriften Procs, Memory, Swap, IO, System und CPU. Die letzte Spalte (am weitesten rechts) enthält die Daten zur CPU.

Hier ist eine Liste der Datenelemente in jeder Spalte.

Vorgang

  • R : Die Anzahl der ausführbaren Prozesse. Dies sind Prozesse, die gestartet wurden und entweder ausgeführt werden oder auf ihren nächsten zeitgeteilten Stoß von CPU-Zyklen warten.
  • B : Die Anzahl der Prozesse im unterbrechungsfreien Ruhezustand. Der Prozess schläft nicht, er führt einen blockierenden Systemaufruf durch und kann nicht unterbrochen werden, bis er seine aktuelle Aktion abgeschlossen hat. Normalerweise ist der Prozess ein Gerätetreiber, der darauf wartet, dass eine Ressource frei wird. Alle in der Warteschlange befindlichen Interrupts für diesen Prozess werden behandelt, wenn der Prozess seine normale Aktivität wieder aufnimmt.

Erinnerung

  • swpd : die Menge des verwendeten virtuellen Speichers. Mit anderen Worten, wie viel Speicher ausgelagert wurde.,
  • kostenlos : die Menge des ungenutzten (derzeit ungenutzten) Speichers.
  • polieren : die Menge an Speicher, die als Puffer verwendet wird.
  • Zwischenspeicher : die Menge des als Cache verwendeten Speichers.

Wechsel

  • ja : Menge des ausgelagerten virtuellen Speichers in aus dem Swap-Bereich.
  • Also : Menge des ausgelagerten virtuellen Speichers aus Platz zu tauschen.

ich

  • mit einer : Von einem Blockgerät empfangene Blöcke. Die Anzahl der Datenblöcke, die verwendet werden, um den virtuellen Speicher wieder in den RAM auszulagern.
  • bo : An ein Blockgerät gesendete Blöcke. Die Anzahl der Datenblöcke, die zum Auslagern des virtuellen Speichers aus dem RAM und in den Auslagerungsbereich verwendet werden.

System

  • in : Die Anzahl der Interrupts pro Sekunde, einschließlich der Uhr.
  • cs : Die Anzahl der Kontextwechsel pro Sekunde. Ein Kontextwechsel tritt auf, wenn der Kernel von der Verarbeitung im Systemmodus in die Verarbeitung im Benutzermodus wechselt.

Zentralprozessor

Diese Werte sind alle Prozentsätze der gesamten CPU-Zeit.

  • uns : Zeit für die Ausführung von Nicht-Kernel-Code. Das heißt, wie viel Zeit wird für die Verarbeitung der Benutzerzeit und für die Verarbeitung der netten Zeit aufgewendet.
  • seine : Zeit für die Ausführung von Kernel-Code.
  • Ich würde : Im Leerlauf verbrachte Zeit.
  • wa : Wartezeit auf Eingabe oder Ausgabe.
  • st : Von einer virtuellen Maschine gestohlene Zeit. Dies ist die Zeit, die eine virtuelle Maschine warten muss, bis der Hypervisor die Wartung anderer virtueller Maschinen abgeschlossen hat, bevor sie zurückkehren und sich um diese virtuelle Maschine kümmern kann.

Verwenden eines Zeitintervalls

Wir können |_+_| . haben Aktualisieren Sie diese Zahlen regelmäßig, indem Sie ein |_+_| . verwenden Wert. Die |_+_| Wert wird in Sekunden angegeben. Damit die Statistiken alle fünf Sekunden aktualisiert werden, verwenden wir den folgenden Befehl:

vmstat

Anzeige

Alle fünf Sekunden |_+_| fügt der Tabelle eine weitere Datenzeile hinzu. Sie müssen Strg+C drücken, um dies zu stoppen.

Verwenden eines Zählwerts

Verwenden eines zu niedrigen |_+_| Wert wird Ihr System zusätzlich belasten. Wenn Sie schnelle Updates benötigen, um ein Problem zu diagnostizieren, wird empfohlen, ein |_+_| . zu verwenden Wert sowie ein |_+_| Wert.

Die |_+_| Wert sagt |_+_| wie viele Aktualisierungen durchgeführt werden müssen, bevor es beendet wird und Sie zur Eingabeaufforderung zurückkehrt. Wenn Sie kein |_+_| . angeben Wert, |_+_| läuft, bis es mit Strg+C gestoppt wird.

|_+_| . haben alle fünf Sekunden ein Update bereitstellen – aber nur für vier Updates – verwenden Sie den folgenden Befehl:

vmstat

Nach vier Updates |_+_| stoppt von selbst.

Ändern der Einheiten

Sie können wählen, ob die Speicher- und Auslagerungsstatistiken in Kilobyte oder Megabyte angezeigt werden, indem Sie |_+_| . verwenden (Einheitszeichen) Option. Darauf muss eine von |_+_| . folgen , |_+_| , |_+_| oder |_+_|. Diese repräsentieren:

  • zu : 1000 Byte
  • ZU : 1024 Byte
  • m : 1000000 Byte
  • m : 1048576 Byte
Anzeige

Verwenden Sie den folgenden Befehl, um die Statistik alle 10 Sekunden mit den in Megabytes angezeigten Speicher- und Auslagerungsstatistiken zu aktualisieren:

delay

Die Speicher- und Auslagerungsstatistiken werden jetzt in Megabyte angezeigt. Beachten Sie, dass die |_+_| Option hat keinen Einfluss auf die IO-Block-Statistik. Diese werden immer in Blöcken angezeigt.

Aktiver und inaktiver Speicher

Wenn Sie |_+_| . verwenden (aktiv) werden die Buff- und Cachespeicherspalten durch die inaktiven und aktiven Spalten ersetzt. Wie sie vorschlagen würden, zeigen diese die Menge des inaktiven und des aktiven Gedächtnisses.

Um diese beiden Spalten anstelle der Buff- und Cache-Spalten anzuzeigen, fügen Sie |_+_| . ein Option, wie gezeigt:

delay

Die inaktiven und aktiven Spalten sind von der Option -S (Einheitszeichen) betroffen.

Gabeln

Die |_+_| switch zeigt die Anzahl der Forks an, die seit dem Hochfahren des Computers aufgetreten sind.

Anzeige

Mit anderen Worten, dies zeigt die Anzahl der Tasks, die seit dem Booten des Systems gestartet (und größtenteils wieder geschlossen) wurden. Jeder über die Befehlszeile gestartete Prozess würde diese Zahl erhöhen. Jedes Mal, wenn eine Aufgabe oder ein Prozess eine neue Aufgabe erzeugt oder klont, erhöht sich diese Zahl.

vmstat

Die Anzeige der Gabeln wird nicht aktualisiert.

Platteninfo anzeigen

Der Kernel muss sich um seine eigene Speicherverwaltung kümmern, ebenso wie die Speicherverwaltung für das Betriebssystem und alle Anwendungen.

Wie Sie sich vorstellen können, weist der Kernel Speicher für die vielen verschiedenen Arten von Datenobjekten, die er verarbeiten muss, immer und immer wieder zu und auf. Um dies so effizient wie möglich zu gestalten, verwendet es ein System namens Slabs. Dies ist eine Form des Cachings.

Speicher, der für einen bestimmten Typ von Kernel-Datenobjekt zugewiesen, verwendet und nicht mehr benötigt wird, kann für ein anderes Datenobjekt desselben Typs wiederverwendet werden, ohne dass der Speicher freigegeben und neu zugewiesen wird. Stellen Sie sich Slabs als vorab zugewiesene, maßgeschneiderte RAM-Segmente für die eigenen Bedürfnisse des Kernels vor.

Um die Statistiken für die Platten anzuzeigen, verwenden Sie |_+_| (Platten) Option. Sie müssen |_+_| verwenden und werden nach Ihrem Passwort gefragt. Da die Ausgabe ziemlich lang sein kann, leiten wir sie durch |_+_|.

delay

Die Ausgabe hat fünf Spalten. Diese sind:

  • Zwischenspeicher : Name des Caches.
  • Auf eins : Die Anzahl der derzeit aktiven Objekte in diesem Cache.
  • gesamt : Die Gesamtzahl der verfügbaren Objekte in diesem Cache.
  • Größe : Die Größe jedes Objekts im Cache.
  • Seiten : Die Gesamtzahl der Speicherseiten, die (mindestens) ein Objekt haben, das derzeit mit diesem Cache verknüpft ist.

Drücken Sie |_+_| verlassen |_+_|.

Anzeigen von Ereigniszählern und Speicherstatistiken

Um eine Seite mit Ereigniszählern und Speicherstatistiken anzuzeigen, verwenden Sie |_+_| (Statistik)-Option. Beachten Sie, dass es sich um ein kleines s handelt.

count

Anzeige

Obwohl die gemeldeten Statistiken weitgehend dieselben sind wie die Informationen, aus denen die Standardeinstellung |_+_| Ausgabe, einige von ihnen sind detaillierter aufgeteilt.

Zum Beispiel kombiniert die Standardausgabe sowohl die nette als auch die nicht nette Benutzer-CPU-Zeit in der us-Spalte. Die Anzeige -s (stats) listet diese Statistiken separat auf.

Ausgabe von vmstat -s in einem Terminalfenster

Anzeigen von Festplattenstatistiken

Sie können eine ähnliche Auflistung von Festplattenstatistiken mit dem Befehl |_+_| . abrufen (Festplatte) Option.

delay

Für jede Festplatte werden drei Spalten angezeigt, nämlich Reads, Writes und IO.

IO ist die Spalte ganz rechts. Beachten Sie, dass die sec-Spalte in IO in Sekunden gemessen wird, die zeitbasierten Statistiken in den Lese- und Schreibspalten jedoch in Millisekunden.

Das bedeuten die Spalten:

Liest

  • gesamt : Die Gesamtzahl der Festplattenlesevorgänge.
  • zusammengeführt : Die Gesamtzahl der gruppierten Lesevorgänge.
  • Sektoren : Die Gesamtzahl der eingelesenen Sektoren.
  • Frau : Gesamtanzahl der Zeit in Millisekunden, die zum Lesen von Daten von der Festplatte verwendet wurden.

schreibt

  • gesamt : Die Gesamtzahl der Festplattenschreibvorgänge.
  • zusammengeführt : Die Gesamtzahl der gruppierten Schreibvorgänge.
  • Sektoren : Die Gesamtzahl der Sektoren, in die geschrieben wurde.
  • Frau = Gesamtanzahl der Zeit in Millisekunden, die zum Schreiben von Daten auf die Festplatte verwendet wurden.

ich

  • kur: Anzahl der aktuellen Lese- oder Schreibvorgänge auf der Festplatte.
  • sek: Zeit in Sekunden für alle laufenden Lese- oder Schreibvorgänge.

Anzeigen der zusammenfassenden Festplattenstatistik

Um eine schnelle Anzeige von zusammenfassenden Statistiken für Ihre Festplattenaktivität anzuzeigen, verwenden Sie |_+_| (Festplattensumme) Option. Beachten Sie den Großbuchstaben D.

count

Anzeige

Die Anzahl der Festplatten sieht möglicherweise ungewöhnlich hoch aus. Auf dem Computer, auf dem dieser Artikel recherchiert wurde, läuft Ubuntu. Bei Ubuntu wird jedes Mal, wenn Sie eine Anwendung von einem Snap installieren, ein |_+_| Es wird ein Pseudo-Dateisystem erstellt, das an ein /dev/loop-Gerät angehängt wird.

Ärgerlicherweise werden diese Geräteeinträge von vielen Linux-Befehlen und -Dienstprogrammen als Festplattengeräte gezählt.

Partitionsstatistik anzeigen

Um Statistiken zu einer bestimmten Partition anzuzeigen, verwenden Sie |_+_| (partition) Option und geben Sie die Partitions-ID als Befehlszeilenparameter an.

Hier sehen wir uns die Partition |_+_| an. Die Ziffer Eins zeigt an, dass dies die erste Partition auf dem Gerät |_+_| ist, das die Hauptfestplatte dieses Computers ist.

vmstat

Die zurückgegebenen Informationen zeigen die Gesamtzahl der Festplattenlese- und Festplattenschreibvorgänge auf und von dieser Partition sowie die Anzahl der Sektoren, die in Festplattenlese- und Festplattenschreibaktionen enthalten sind.

Ein Blick unter die Haube

Es ist immer gut zu wissen, wie man die Motorhaube anhebt und sieht, was darunter passiert. Manchmal versuchen Sie, ein Problem zu lösen, manchmal ist es aus Interesse, weil Sie wissen möchten, wie Ihr Computer tickt.

|_+_| kann Ihnen eine Menge nützlicher Informationen liefern. Jetzt wissen Sie, wie Sie darauf zugreifen und was es bedeutet. Und vorgewarnt ist gewappnet – wenn Sie die Ärmel hochkrempeln und eine Diagnose durchführen müssen, wissen Sie, dass Sie |_+_| . haben auf deiner Seite.

Linux-Befehle
Dateien Teer · pv · Katze · tac · chmod · Griff · unterschied · sed · Mit · Mann · geschoben · popd · fsck · Testdisk · seq · fd · pandoc · CD · $PFAD · awk · beitreten · jq · falten · einzigartig · Journalctl · Schwanz · Zustand · ls · fstab · rauswerfen · weniger · chgrp · chown · rev · suchen · Saiten · Typ · umbenennen · Postleitzahl · entpacken · montieren · ummount · Installieren · fdisk · mkfs · rm · rmdir · rsync · df · gpg · wir · Nano · mkdir · von · ln · Patch · Konvertieren · rclon · Fetzen · SRM
Prozesse alias · Bildschirm · oben · nett · renice · Fortschritt · strace · System · tmux · chsh · Geschichte · beim · Charge · kostenlos · die · dmesg · Benutzermod · ps · chroot · xargs · tty · kleiner Finger · lsof · vmstat · Auszeit · Mauer · ja · töten · Schlaf · sudo · seine · Zeit · groupadd · Benutzermod · Gruppen · lshw · stilllegen · neu starten · halt · ausschalten · passwd · lscpu · crontab · Datum · bg · fg
Vernetzung netstat · Klingeln · Traceroute · ip · ss · Wer ist · fail2ban · bmon · Sie · Finger · nmap · ftp · Locken · wget · Wer · Wer bin ich · In · iptables · ssh-keygen · ufw

VERBUNDEN: Beste Linux-Laptops für Entwickler und Enthusiasten

WEITER LESEN Profilfoto von Dave McKay Dave McKay
Dave McKay benutzte zum ersten Mal Computer, als Lochstreifen in Mode waren, und programmiert seitdem. Nach über 30 Jahren in der IT-Branche ist er heute hauptberuflich Technologiejournalist. Im Laufe seiner Karriere war er als freiberuflicher Programmierer, Leiter eines internationalen Softwareentwicklungsteams, Projektleiter für IT-Services und zuletzt als Datenschutzbeauftragter tätig. Sein Schreiben wurde von howtogeek.com, cloudavvyit.com, itenterpriser.com und opensource.com veröffentlicht. Dave ist ein Linux-Evangelist und Open-Source-Verfechter.
Vollständige Biografie lesen

Interessante Artikel