Analizzo i dati da /proc/[pid]/statm
per ottenere informazioni sull'utilizzo della memoria di un determinato processo. man proc
indica che formato residente (misurato in "pagine") è lo stesso di VmRSS (KB ??) in /proc/[pid]/status
. Dal momento che hanno valori diversi, vorrei capire la connessione tra questi valori. C'è qualcosa come un fattore che posso leggere da qualche parte in /proc
(ho pensato a VmPTE ma è il suo sth. Else ...)? Quale dei due dovrei analizzare per ottenere la dimensione della memoria utilizzata per un determinato processo?Come corrispondono le dimensioni del set VmRSS e residente?
#ex 1782 = firefox
~$ cat /proc/1782/statm
224621 46703 9317 11 0 98637 0
# \--- resident set size
~$ cat /proc/1782/status | grep Vm
VmPeak: 935584 kB
VmSize: 898484 kB
VmLck: 0 kB
VmHWM: 257608 kB
VmRSS: 186812 kB
VmData: 394328 kB
VmStk: 220 kB
VmExe: 44 kB
VmLib: 61544 kB
VmPTE: 1224 kB
VmSwap: 0 kB
non so dove trovare il valore dal proc, ma penso che la mia pagesize è 4 KB. Sono stato confuso da VmPTE. Sembra essere piuttosto la "dimensione della parte [pid] della tabella della pagina", quindi la "dimensione di una voce del buffer" :) – lupz
Sì, molti di questi valori dipendono dal sistema. In alcuni sistemi con cui ho lavorato, alcuni di questi valori danno sempre uno 0 perché il supporto non è stato compilato nel kernel. Quindi sì, non credere a quello che dicono le mie pagine man perché potrebbero non essere rilevanti per il tuo sistema. – Ray
In realtà, memoria virtuale = parte in RAM + parte su disco + spazio di indirizzamento virtuale non mappato alla memoria fisica + file mappati in memoria + memoria condivisa. Quindi per misurare il consumo di memoria, VmSize è piuttosto inutile. Vedere la prima risposta a http://stackoverflow.com/questions/13308684/increase-of-virtual-memory-without-increse-of-vmsize – vcarel