Wie kann der von einem Prozess belegte Speicher überwacht werden?

16

Ich habe einen Prozess, den ich sehen möchte, wie viel Speicher es verbraucht, während es ausgeführt wird.

Im Moment mache ich das:

ps faux | grep casper

Aber das gibt mir nur die Information von diesem Moment. Es wäre schön zu sehen, wie sich dieser Wert im Verlauf des Skripts ändert.

Wie kann ich das machen?

Hommer Smith
quelle

Antworten:

15

Methode 1

Lauf:

top

Überprüfen Sie die PID des Programms (erste Spalte) und führen Sie dann Folgendes aus:

top -p PID

Methode 2

Fügen Sie dies entweder in das Terminal ein oder speichern Sie es als mem_usage.sh und führen Sie es vom Terminal aus.

#! /bin/bash
while :
do
    clear
    ps faux | grep casper
    sleep 1s
done
Julian Stirling
quelle
1
Wie können Sie die Anzeige von% ändern? Aus Interesse :-)
Wilf
Ich bekomme dies, wenn ich das Skript ausführe: bash: ./memory_usage.sh: bin / bash: schlechter Interpreter: Keine solche Datei oder Verzeichnis
Hommer Smith
Bah! Ich habe es bearbeitet! Sollte es vor dem Posten richtig überprüft haben. In der ersten Zeile sollte angegeben sein, wo es von / bin / bash ausgeführt werden soll (ich hatte bin / bash, also überprüfte es lokal in einem Ordner namens bin for bash)
Julian Stirling
1
@ wilf ps faux | grep casper | awk '{print $ 11} {print $ 6}' Das sollte in einer Zeile den Programmnamen und in der nächsten die tatsächliche Speichergröße in kB anzeigen.
Julian Stirling
6

Um nur Ihren Prozess zu überwachen, können Sie / proc / PID / status oder / proc / PID / statm überprüfen.

Über / proc / PID / statm:

Danach cat /proc/PID/statmsolltest du folgendes sehen:

611450 185001 883 18 0 593431 0

Erklärung:

  1. Größe: - Gesamtprogrammgröße (611450 x 4096/1024 = 2445800 KB = 2388 MB)
  2. Resident: - Größe des Resident-Sets (185001 x 4096/1024 = 740004 KB = 722 MB)
  3. share: - freigegebene Seiten (883 x 4096 = 3532)
  4. trs: - Text (Code) (18 x 4096/1024 = 72 KB = VmExe)
  5. drs: - Daten / Stapel
  6. lrs: - library (593431 x 4096/1024 = 2373724 KB = VmData + VmStk)
  7. dt: - schmutzige seiten

Sie können auch die Speicheraktivität für Ihren Prozess protokollieren, indem Sie eine Schleife mit Datum und Katze durchführen.

yilmi
quelle
4

du könntest 'top' benutzen

man top

Mit diesem Programm können Sie die Ressourcennutzung unter anderem nach RSS, VSZ, CPU usw. sortieren. Dies ist sehr nützlich.

Alternativ können Sie für eine detailliertere Aufschlüsselung der Speichernutzung 'pmap' verwenden.

man pmap

Anwendungsbeispiel:

pmap -x 1234

Prost

sc.

schweizer Käse
quelle
1
Mit pmap -x PID, meinten Sie unglaublich detaillierte Nutzung :-)
Wilf
in der Tat - kann nie genug Details haben :)
Swisscheese
Auf meinem (Ubuntu 16.04.5 LTS) "pmap -x" mit der PID zeigt nichts anderes als die PID und den Befehl. -X macht dasselbe.
24.
2

Öffnen Sie den Systemmonitor und wechseln Sie zur ProcessesRegisterkarte:

Wilf
quelle
1

Probieren Sie aus:

watch 'ps faux | grep -v grep | grep casper'

Sie können das Aktualisierungsintervall auch mit dem --interval <seconds>Parameter ändern .

Martin Dvorak
quelle
1
Sie brauchen das -v grep nicht, wenn Sie das letzte in grep [c] asper ändern. Das passt zu casper aber nicht zu sich.
Wudang