Ermitteln Sie den für einen bestimmten Prozess in Ubuntu zugewiesenen Gesamtspeicher

14

Wie kann ich den für einen bestimmten Prozess in Ubuntu zugewiesenen Gesamtspeicher ermitteln?

Anjali
quelle
1
Hast du ps -aefl ausprobiert und dir die SZ-Spalte angesehen?
mdpc
2
Was meinen Sie mit „den zugewiesenen Speicher herausfinden“? Möchten Sie wissen, wie viel Speicher der Prozess verwendet?
Gilles 'SO - hör auf böse zu sein'

Antworten:

13

Versuchen:

pidof bash | xargs ps -o rss,sz,vsz

So ermitteln Sie die Speichernutzung Ihrer aktuellen bashShell (vorausgesetzt, Sie verwenden bash). Wechseln Sie bashzu 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 manSeite:

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 manSeite für pswerden alle möglichen Argumente für die -oOption aufgelistet (es stehen einige zur Auswahl). Stattdessen können -o rss,szSie die vOption BSD-Stil (kein Bindestrich) verwenden, die ein alternatives Speicherlayout anzeigt.

garethTheRed
quelle
Dank Gareth ... Wollen Sie damit sagen, dass SZ der für diesen Prozess zugewiesene Speicher ist?
Anjali
4
Es gibt eine gute QA hier , die die Beziehung zwischen erklärt RSS, SZund VSZ.
garethTheRed
0

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, htopetc ....). 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/mapsetc ... 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/statusetc ...

Siehe auch LinuxAteMyRam .

Basile Starynkevitch
quelle