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.
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 ...
Antworten:
Versuchen:
So ermitteln Sie die Speichernutzung Ihrer aktuellen
bash
Shell (vorausgesetzt, Sie verwendenbash
). Wechseln Siebash
zu dem, was Sie untersuchen. Wenn Sie nach einem bestimmten Prozess suchen, verwenden Sie ihn einfach alleine: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ürps
werden alle möglichen Argumente für die-o
Option aufgelistet (es stehen einige zur Auswahl). Stattdessen können-o rss,sz
Sie diev
Option BSD-Stil (kein Bindestrich) verwenden, die ein alternatives Speicherlayout anzeigt.quelle
RSS
,SZ
undVSZ
.Sie können Folgendes verwenden
pmap
, um die Speicherzuordnung eines Prozesses anzuzeigen:Weitere Informationen finden Sie in der Manpage
man pmap
oder unter pmap (1): Report Memory Map of Process - Linux-Manpage .quelle
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 wirdps
,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önnencat
(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 .
quelle