Come posso scoprire la memoria totale allocata per un particolare processo in Ubuntu?
Come posso scoprire la memoria totale allocata per un particolare processo in Ubuntu?
Risposte:
Provare:
pidof bash | xargs ps -o rss,sz,vsz
Per trovare l'utilizzo della memoria della bash
shell corrente (supponendo che tu stia utilizzando bash
). Passa bash
a qualsiasi cosa tu stia indagando. Se stai seguendo un processo specifico, usa semplicemente:
ps -o rss,sz,vsz <process id>
Dalla man
pagina:
RSS
: dimensione del set di residenti, memoria fisica non scambiata utilizzata da un'attività (in kiloByte).
SZ
: dimensione nelle pagine fisiche dell'immagine principale del processo. Ciò include testo, dati e spazio dello stack.
VSZ
: dimensione della memoria virtuale del processo in KiB (unità da 1024 byte).
La man
pagina per ps
elencherà tutti i possibili argomenti -o
dell'opzione (ce ne sono alcuni tra cui scegliere). Invece di -o rss,sz
te puoi usare l' v
opzione di stile BSD (senza trattino) che mostra un layout di memoria alternativo.
È possibile utilizzare pmap
quale mostra la mappa di memoria di un processo:
pmap -p pid
Per maggiori informazioni a riguardo vedi la pagina man man pmap
o dai un'occhiata a pmap (1): riporta la mappa di memoria del processo - pagina man di Linux .
come scoprire la memoria totale allocata per un particolare processo in Ubuntu?
Non si definisce quale sia la memoria allocata per un processo, e in realtà questa è una domanda piuttosto complessa (che dire dei mapping di memoria condivisa - vedi mmap (2) per i dettagli; che dire della memoria condivisa POSIX - vedi shm_overview (7) per più ; che dire di alcune pagine nella cache delle pagine utilizzate per i file aperti; ecc ...)
È possibile utilizzare il /proc/
file system (che BTW viene utilizzato da ps
, pmap
, top
, htop
ecc ....). Leggi proc (5) per ulteriori informazioni. In particolare per il processo di pid 1234 si potrebbe usare /proc/1234/status
, /proc/1234/statm
, /proc/1234/maps
ecc ... Sono tutti pseudo-file testuali (un po 'come tubi) che si possono vedere con cat
(o leggere in sequenza all'interno di un certo programma). A proposito, dall'interno di un programma potresti usare /proc/self
(che è uno pseudo symlink), ad esempio leggere in sequenza /proc/self/status
ecc ...
Vedi anche LinuxAteMyRam .