Wie kann ich den für einen bestimmten Prozess in Ubuntu zugewiesenen Gesamtspeicher ermitteln?
Wie kann ich den für einen bestimmten Prozess in Ubuntu zugewiesenen Gesamtspeicher ermitteln?
Antworten:
Versuchen:
pidof bash | xargs ps -o rss,sz,vsz
So ermitteln Sie die Speichernutzung Ihrer aktuellen bash
Shell (vorausgesetzt, Sie verwenden bash
). Wechseln Sie bash
zu dem, was Sie untersuchen. Wenn Sie nach einem bestimmten Prozess suchen, verwenden Sie ihn einfach alleine:
ps -o rss,sz,vsz <process id>
Von der man
Seite:
RSS
: Resident Set Size, der nicht ausgelagerte physische Speicher, den eine Task verwendet hat (in Kilobyte).
SZ
: Größe des Kernbilds des Prozesses in physischen Seiten. Dies schließt Text, Daten und Stapelspeicher ein.
VSZ
: Größe des virtuellen Speichers des Prozesses in KB (1024-Byte-Einheiten).
Auf der man
Seite für ps
werden alle möglichen Argumente für die -o
Option aufgelistet (es stehen einige zur Auswahl). Stattdessen können -o rss,sz
Sie die v
Option BSD-Stil (kein Bindestrich) verwenden, die ein alternatives Speicherlayout anzeigt.
Sie können Folgendes verwenden pmap
, um die Speicherzuordnung eines Prozesses anzuzeigen:
pmap -p pid
Weitere Informationen finden Sie in der Manpage man pmap
oder unter pmap (1): Report Memory Map of Process - Linux-Manpage .
Wie kann man den für einen bestimmten Prozess in Ubuntu zugewiesenen Gesamtspeicher ermitteln?
Sie definieren nicht, wie viel Speicher für einen Prozess reserviert wird, und das ist eigentlich eine ziemlich komplexe Frage (was ist mit Zuordnungen für gemeinsam genutzten Speicher - siehe mmap (2) für Details; was ist mit gemeinsam genutztem POSIX-Speicher - siehe shm_overview (7) für mehr ; was ist mit einigen Seiten im Seiten-Cache, die für geöffnete Dateien verwendet werden; etc ...)
Sie könnten die Verwendung /proc/
Dateisystem (das BTW durch benutzt wird ps
, pmap
, top
, htop
etc ....). Lies proc (5) für mehr. Insbesondere für Prozess der pid 1234 Sie nutzen könnten /proc/1234/status
, /proc/1234/statm
, /proc/1234/maps
etc ... Sie sind alle Text pseudo-Dateien (ein bisschen wie Rohre) , dass Sie mit sehen können cat
(oder lesen sequenziell innerhalb einiger Programm). Übrigens, aus einem Programm heraus, das Sie vielleicht benutzen /proc/self
(was ein Pseudo-Symlink ist), zB sequentiell lesen /proc/self/status
etc ...
Siehe auch LinuxAteMyRam .