Erinnerung

So überprüfen Sie die Speichernutzung pro Prozess unter Linux

So überprüfen Sie die Speichernutzung pro Prozess unter Linux
Heutzutage kann ein Computer viele Programme gleichzeitig ausführen. Die CPU hat kein Problem mit all diesen Programmen, da CPUs mehrere Kerne haben, um Multitasking zu bewältigen.

Jedes dieser Programme läuft als ein oder mehrere Prozesse. Jeder Prozess weist sich selbst eine gewisse Menge an RAM oder Speicher zu. Es ist wichtig, dass der Prozess richtig funktioniert. Wenn ein Prozess nicht genügend RAM oder Speicher zuweist, kann der Prozess nicht erstellt werden und das Programm kann nicht gestartet werden.

Eine der grundlegenden Aufgaben, die Sie auf Ihrem Computer ausführen, besteht also darin, zu überprüfen, wie viel Arbeitsspeicher oder RAM (Random Access Memory) jeder der Prozesse verwendet. Weil RAM oder Speicher Ihres Computers begrenzt ist.

Stellen Sie sich einen Fall vor, in dem Sie ein Programm ausführen möchten und es fehlschlägt, weil Sie nicht genügend Speicher haben. Möglicherweise verwenden einige der Prozesse viel Speicher, den Sie gerade nicht benötigen. Sie können diese Prozesse beenden oder stoppen, um RAM oder Speicher freizugeben, damit Sie Ihre wichtigen Programme starten können.

In diesem Artikel zeige ich Ihnen, wie Sie die Speichernutzung jedes der Prozesse überprüfen können, die auf Ihrem Linux-Rechner ausgeführt werden. Ich werde Debian 9 Stretch für alle Demonstrationen in diesem Artikel verwenden. Aber es sollte auf allen modernen Linux-Distributionen funktionieren. Lass uns anfangen.

Überprüfen der Speichernutzung mit dem ps-Befehl:

Du kannst den ... benutzen ps Befehl zum Überprüfen der Speichernutzung aller Prozesse unter Linux. Es gibt ein Problem bei diesem Verfahren. ps zeigt Ihnen nicht wirklich an, wie viel Speicher ein Prozess im KB- oder MB-Format verwendet, aber es zeigt Ihnen, wie viel Speicher in Prozent verwendet wird.

Sie können die Speichernutzung (in Prozent) aller Prozesse überprüfen, die auf Ihrem Linux-Betriebssystem mit dem folgenden Befehl ausgeführt werden:

$ ps -o pid,user,%mem,Befehl ax | sortieren -b -k3 -r

Wie Sie sehen, werden alle Prozesse mit prozentualer Speicherauslastung in absteigender Reihenfolge aufgelistet (die Prozesse, die den größten Teil des Speichers beanspruchen, werden zuerst aufgeführt).

Speichernutzung von Prozessen mit pmap prüfen:

Sie können den Speicher eines Prozesses oder einer Reihe von Prozessen in einem für Menschen lesbaren Format (in KB oder Kilobyte) überprüfen mit pmap Befehl. Alles, was Sie brauchen, ist die PID der Prozesse, deren Speichernutzung Sie überprüfen möchten.

Nehmen wir an, Sie möchten überprüfen, wie viel Speicher der Prozess mit PID 917 verwendet. Um das zu tun, laufe pmap wie folgt:

$ sudo pmap 917

Wie Sie sehen, beträgt der vom Prozess 917 verwendete Gesamtspeicher 516104 KB oder Kilobytebyte. Sie können auch hier sehen, wie viel Speicher die Bibliotheken und anderen Dateien benötigen, die zum Ausführen des Prozesses mit PID 917 erforderlich sind.

Wenn es Ihnen egal ist, wie viel Speicher die Bibliotheken oder andere abhängige Dateien verwenden, führen Sie pmap wie folgt:

$ sudo pmap 917 | Schwanz -n 1

Wie Sie sehen, wird nur der gesamte vom Prozess verwendete Speicher mit PID 917 auf dem Bildschirm gedruckt.

Wenn Sie möchten, können Sie dies mit weiter filtern awk und erhalten Sie nur die Größe in KB oder Kilobyte. Um das zu tun, lauf pmap wie folgt:

$ sudo pmap 917 | Schwanz -n 1 | awk '/[0-9]K/print $2'

Wie Sie sehen, wird nur der Speicherverbrauch in KB oder Kilobyte gedruckt.

Jetzt können Sie auch auflisten, wie viel Speicher von mehreren Prozessen mit ihren PIDs verwendet wird mit pmap wie folgt:

$ sudo pmap 917 531 | grep gesamt

HINWEIS: Hier sind 917 und 531 Prozess-IDs oder PIDs. Sie können auf diese Weise so viele PIDs eingeben, wie Sie möchten.

Verwenden von pmap zum Auflisten der Speichernutzung aller Prozesse in Kilobyte:

In diesem Abschnitt zeige ich Ihnen, wie Sie Ihr eigenes Shell-Skript schreiben, um die Speichernutzung aller Prozesse, die auf Ihrem Linux-Betriebssystem ausgeführt werden, in einem für Menschen lesbaren Format (Kilobyte oder KB) aufzulisten.

Zuerst eine neue Datei erstellen sysmon in Ihrem aktuellen Arbeitsverzeichnis mit dem folgenden Befehl:

$ touch-sysmon

Machen Sie nun die Datei mit folgendem Befehl ausführbar:

$ chmod +x sysmon

sysmon ist das Shell-Skript, das alle laufenden Prozesse anzeigt PID, INHABER, ERINNERUNG (in KB in absteigender Reihenfolge) und BEFEHL. Lasst uns beginnen.

Öffne das sysmon Skript mit Ihrem bevorzugten Texteditor, den ich verwenden werde Kate.

Jetzt wird mir der erste Befehl, den ich ausführen werde, die PID, INHABER und BEFEHL aller laufenden Prozesse durch Doppelpunkt (:) getrennt und im RAWIN Variable. Dann durchlaufen Sie die Ausgabe und drucken Sie sie auf dem Bildschirm aus.

Wie Sie sehen, erhalte ich die richtige Ausgabe.

Jetzt ist es an der Zeit, jede Zeile zu verarbeiten und die durch Doppelpunkte getrennten Informationen in separaten Variablen zu speichern. Das habe ich in Zeile 7, 8 und 9 gemacht.

Wie Sie sehen, kann ich drucken PID, INHABER und BEFEHL jetzt in meinem eigenen Format.

Jetzt ist es an der Zeit, die Speichernutzung jeder PID abzurufen. Zeile 10 macht genau das.

Wie ihr seht funktioniert alles perfekt. Jetzt kann ich auch die Speichernutzung jedes Prozesses in Kilobyte (KB) ausgeben.

Jetzt müssen Sie nur noch die Ausgabe formatieren, damit sie schön aussieht. Ich bevorzuge das Tabellenformat. Zeile 5 druckt die Kopfzeile jeder Spalte der Tabelle.

Endlich habe ich gedruckt PID, INHABER, ERINNERUNG (in KB) und BEFEHL der einzelnen Prozesse in tabellarischer Form mit Zeile 14.

Wie ihr seht, funktioniert es ganz gut. Es gibt jedoch ein kleines Problem, die Prozesse werden nicht korrekt in absteigender Reihenfolge nach Speicherverbrauch sortiert.

Um das zu beheben, habe ich entfernt sortieren -bnr -k3 aus Zeile 3 und alles in eine Shell-Funktion verpackt sysmon_main(). Dann überließ die Sortierung den Sortieren Befehl.

Das endgültige Shell-Skript sieht in etwa so aus:

Wie ihr seht funktioniert es super.

Jetzt können Sie es irgendwohin verschieben wie /usr/bin und führen Sie es wie andere Befehle wie folgt aus:

$ sudo mv -v sysmon /usr/bin

Ausführen sysmon:

Danke, dass du diesen Artikel gelesen hast.

So installieren und spielen Sie Doom unter Linux
Einführung in Doom Die Doom-Serie entstand in den 90er Jahren nach der Veröffentlichung des ursprünglichen Doom. Es war sofort ein Hit und seitdem hat...
Vulkan für Linux-Benutzer
Mit jeder neuen Grafikkartengeneration stoßen Spieleentwickler an die Grenzen der grafischen Wiedergabetreue und kommen dem Fotorealismus einen Schrit...
OpenTTD vs. Simutrans
Das Erstellen einer eigenen Transportsimulation kann Spaß machen, entspannend und äußerst verlockend sein. Deshalb sollten Sie so viele Spiele wie mög...