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

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

Heutzutage kann ein Computer viele Programme gleichzeitig ausführen. Die CPU hat kein Problem damit, all diese Programme zu behandeln, da CPUs über mehrere Kerne verfügt, um Multitasking zu verarbeiten.

Jedes dieser Programme läuft als ein oder mehrere Prozesse. Jeder Prozess verteilt sich selbst eine Menge RAM oder Speicher für sich selbst. Es ist wichtig, dass der Prozess korrekt funktioniert. Wenn ein Prozess nicht genügend RAM oder Speicher zuordnet, kann der Prozess nicht erstellt werden und das Programm kann nicht starten können.

Eine der grundlegenden Aufgaben, die Sie auf Ihrem Computer ausführen. Denn RAM oder Speicher Ihres Computers sind begrenzt.

Stellen Sie sich einen Fall vor, in dem Sie ein Programm ausführen möchten, und es schlägt fehl. Möglicherweise verwenden einige der Prozesse viel Speicher, die Sie momentan nicht benötigen. Sie können diese Prozesse abtöten oder stoppen, um RAM oder Speicher freizugeben, damit Sie Ihre wichtigen Programme starten können.

In diesem Artikel werde ich Ihnen zeigen. Ich werde Debian 9 Stretch für die gesamte Demonstration in diesem Artikel verwenden. Aber es sollte auf modernen Linux -Verteilungen funktionieren. Lass uns anfangen.

Überprüfen Sie den Speicherverbrauch mit dem Befehl PS:

Du kannst den ... benutzen ps Befehl zur Überprüfung des Speicherverbrauchs aller Prozesse unter Linux. Es gibt ein Problem mit diesem Verfahren. ps Zeigen Sie Ihnen nicht wirklich, wie viel Speicher ein Prozess im KB- oder MB -Format verwendet, aber es zeigt Ihnen, wie viel Speicher im Prozentsatz verwendet wird.

Sie können den Speicherverbrauch (in Prozent) des gesamten Vorgangs auf Ihrem Linux -Betriebssystem mit dem folgenden Befehl überprüfen:

$ PS -O PID, Benutzer,%mem, Befehl ax | sortieren -b -k3 -r

Wie Sie sehen können, sind alle Prozesse mit Speicherverbrauch im Prozentsatz in absteigender Reihenfolge aufgeführt (die Prozesse, die den größten Teil des Speichers verwenden, werden zuerst aufgeführt).

Überprüfung des Speicherverbrauchs von Prozessen mit PMAP:

Sie können den Speicher eines Prozesses oder eine Reihe von Prozessen im menschlichen lesbaren Format (in KB oder Kilobytes) untersuchen PMAP Befehl. Alles, was Sie benötigen.

Nehmen wir an, Sie möchten überprüfen, wie viel Speicher der Vorgang mit PID 917 verwendet wird. Um das zu tun, laufen PMAP folgendermaßen:

$ sudo pmap 917

Wie Sie sehen können, beträgt der Gesamtspeicher vom Prozess 917 516104 kb oder Kilobytes. Sie können auch sehen, wie viel Speicher die Bibliotheken und andere Dateien erforderlich sind, um den Vorgang mit PID 917 auszuführen.

Wenn Sie sich nicht darum kümmern, wie viel Speicher die Bibliotheken oder andere abhängige Dateien verwenden, führen Sie dann aus PMAP folgendermaßen:

$ sudo pmap 917 | Schwanz -n 1

Wie Sie sehen können, wird nur der Gesamtspeicher, der vom Vorgang mit PID 917 verwendet wird, auf dem Bildschirm gedruckt.

Wenn Sie möchten, können Sie dies weiter filtern awk und nur die Größe in KB oder Kilobyte erhalten. Um das zu tun, laufen PMAP folgendermaßen:

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

Wie Sie sehen können, wird nur die Speicherverwendung in KB oder Kilobytes gedruckt.

Jetzt können Sie auch auflisten, wie viel Speicher von mehreren Prozessen verwendet wird, die ihre PIDs mit verwenden PMAP folgendermaßen:

$ sudo pmap 917 531 | Grep total

NOTIZ: Hier sind 917 und 531 Prozess -IDs oder PIDs. Sie können so viele PIDs wie Sie auf diese Weise platzieren.

Verwenden Sie PMAP, um Speicherverbrauch aller Prozesse in Kilobytes zu verwenden:

In diesem Abschnitt zeige ich Ihnen, wie Sie Ihr eigenes Shell -Skript schreiben, um die Speicherverwendung aller Prozesse auf Ihrem Linux -Betriebssystem im menschlichen lesbaren Format (Kilobytes oder KB) aufzulisten.

Erstellen Sie zuerst eine neue Datei Sysmon In Ihrem aktuellen Arbeitsverzeichnis mit dem folgenden Befehl:

$ touch sysmon

Lassen Sie nun die Datei mit dem folgenden Befehl ausführen:

$ chmod +x sysmon

Sysmon ist das Shell -Skript, das alle laufenden Prozesse anzeigt PID, EIGENTÜMER, SPEICHER (in KB in absteigender Reihenfolge) und BEFEHL. Lasst uns beginnen.

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

Jetzt wird mir der erste Befehl, den ich rennen werde, das geben PID, EIGENTÜMER Und BEFEHL von allen laufenden Prozessen, die von Colon (:) Symbol getrennt sind und es in der speichern Rawin Variable. Schleifen Sie dann die Ausgabe durch und drucken Sie sie auf dem Bildschirm aus.

Wie Sie sehen können, bekomme ich die richtige Ausgabe.

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

Wie Sie sehen können, kann ich drucken PID, EIGENTÜMER Und BEFEHL jetzt in meinem eigenen Format.

Jetzt ist es Zeit, die Speicherverwendung jeder PID zu holen. Zeile 10 macht genau das.

Wie Sie sehen können, funktioniert alles perfekt. Jetzt kann ich die Speicherverwendung jedes Prozesses auch in Kilobytes (KB) drucken.

Jetzt bleibt nur noch die Ausgabe so zu formatieren, um gut auszusehen. Ich bevorzuge Tischformat. Zeile 5 druckt den Header jeder Spalte der Tabelle.

Schließlich druckte ich PID, EIGENTÜMER, SPEICHER (in KB) und BEFEHL jeder Prozesse in einem tabellarischen Format mit Zeile 14.

Wie Sie sehen können, funktioniert es irgendwie gut. Es gibt jedoch ein wenig Problem, die Prozesse sind nicht korrekt in absteigender Reihenfolge nach Speicherverwendung korrekt sortiert.

Um das zu beheben, habe ich entfernt Sortieren Sie -bnr -k3 aus Zeile 3 und wickelte alles in eine Shell -Funktion ein sysmon_main (). Dann ließ es die Aufgabe der Sortierung auf die Sortieren Befehl.

Das endgültige Shell -Skript sieht ungefähr so ​​aus:

Wie Sie sehen können, funktioniert es großartig.

Jetzt können Sie es auf irgendwohin bewegen /usr/Bin und führen Sie es genau wie andere Befehle wie folgt aus:

$ sudo mv -v sysmon /usr /bin /bin

Ausführung Sysmon:

Danke, dass du diesen Artikel gelesen hast.