Analizo datos de /proc/[pid]/statm
para tener una idea sobre el uso de memoria de un proceso determinado. man proc
indica que residente establece el tamaño (medido en 'páginas') es el mismo que VmRSS (KB ??) en /proc/[pid]/status
. Como tienen valores diferentes, me gustaría entender la conexión entre estos valores. ¿Hay algo así como un factor que pueda leer en algún lugar en /proc
(pensé en VmPTE pero es algo ...)? ¿Cuál de los dos debería analizar para obtener el tamaño de la memoria utilizada para un determinado proceso?¿Cómo coinciden VmRSS y el tamaño del conjunto 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
no sé dónde obtener el valor de proc, pero creo que mi tamaño de página es de 4 KB. Estaba confundido por VmPTE. Parece ser más bien el 'tamaño de [pid] s parte de la tabla de páginas', luego el 'tamaño de una entrada de buffer' :) – lupz
Sí, muchos de estos valores dependen del sistema. En algunos sistemas con los que he trabajado, algunos de esos valores siempre darán un 0 porque el soporte no se ha compilado en el kernel. Entonces, sí, no crea lo que dicen mis páginas man, ya que pueden no ser relevantes para su sistema. – Ray
En realidad, memoria virtual = parte en RAM + parte en el disco + espacio de direcciones virtuales no asignado a la memoria física + memoria asignada archivos + memoria compartida. Entonces, para medir el consumo de memoria, VmSize es bastante inútil. Consulte la primera respuesta a http://stackoverflow.com/questions/13308684/increase-of-virtual-memory-without-increse-of-vmsize – vcarel