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

How Check Memory Usage Per Process Linux



Heutzutage kann ein Computer viele Programme gleichzeitig ausführen. Die CPU hat kein Problem damit, all diese Programme zu handhaben, da CPUs mehrere Kerne haben, um Multitasking zu bewältigen.

Jedes dieser Programme wird als ein oder mehrere Prozesse ausgeführt. 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. Denn RAM oder Arbeitsspeicher Ihres Computers ist begrenzt.



Stellen Sie sich einen Fall vor, in dem Sie ein Programm ausführen möchten und es fehlschlägt, weil Sie nicht über genügend Speicher verfügen. 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, die auf Ihrem Linux-Computer 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.





Du kannst den ... benutzen ps Befehl, um die Speichernutzung aller Prozesse unter Linux zu überprüfen. Bei diesem Verfahren gibt es ein Problem. 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 -oderpid, Benutzer,%meme,BefehlAxt| 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).

Speicherauslastung von Prozessen mit pmap prüfen:

Sie können den Speicher eines Prozesses oder einer Reihe von Prozessen im lesbaren Format (in KB oder Kilobytes) mit überprüfen pmap Befehl. Sie benötigen lediglich 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:

$sudopmap917

Wie Sie sehen, beträgt der vom Prozess 917 verwendete Gesamtspeicher 516104 KB oder Kilobyte. Sie können hier auch 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:

$sudopmap917 | Schwanz -n 1

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

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, laufe pmap wie folgt:

$sudopmap917 | Schwanz -n 1 | awk '/ [0-9] K / {$ 2 drucken}'

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

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

$sudopmap917 531 | Griffgesamt

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:

$berührensysmon

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

$chmod+x sysmon

sysmon ist das Shell-Skript, das alle laufenden Prozesse anzeigt PID , EIGENTÜMER , 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 , EIGENTÜMER und BEFEHL aller laufenden Prozesse durch Doppelpunkt (:) getrennt und speichern Sie es im RAWIN Variable. Durchlaufen Sie dann 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 , EIGENTÜMER und BEFEHL jetzt in meinem eigenen Format.

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

Wie Sie sehen, funktioniert alles perfekt. Jetzt kann ich die Speichernutzung jedes Prozesses auch in Kilobyte (KB) ausgeben.

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

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

Wie Sie sehen, funktioniert es ziemlich 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 Sie sehen, funktioniert es hervorragend.

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

$sudo mv -vsysmon/usr/bin

Ausführen sysmon :

Danke, dass Sie diesen Artikel gelesen haben.