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 bashshell corrente (supponendo che tu stia utilizzando bash). Passa basha qualsiasi cosa tu stia indagando. Se stai seguendo un processo specifico, usa semplicemente:
ps -o rss,sz,vsz <process id>
Dalla manpagina:
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 manpagina per pselencherà tutti i possibili argomenti -odell'opzione (ce ne sono alcuni tra cui scegliere). Invece di -o rss,szte puoi usare l' vopzione di stile BSD (senza trattino) che mostra un layout di memoria alternativo.
È possibile utilizzare pmapquale mostra la mappa di memoria di un processo:
pmap -p pid
Per maggiori informazioni a riguardo vedi la pagina man man pmapo 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, htopecc ....). 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/mapsecc ... 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/statusecc ...
Vedi anche LinuxAteMyRam .