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?

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

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.


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.


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:


1

Probieren Sie aus:

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

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


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.