Estoy un poco confundido con algunos de los resultados que veo de ps y gratis .
En mi servidor, este es el resultado de free -m
[[email protected] ~]# free -m
total used free shared buffers cached
Mem: 2048 2033 14 0 73 1398
-/+ buffers/cache: 561 1486
Swap: 2047 11 2036
Mi comprensión de cómo Linux administra la memoria es que almacenará el uso del disco en la RAM, de modo que cada acceso posterior sea más rápido. Creo que esto está indicado por las columnas "en caché". Además, varios búferes se almacenan en la RAM, indicados en la columna "búferes".
Entonces, si entiendo correctamente, se supone que el uso "real" es el valor "usado" de "-/+ búfer/caché", o 561 en este caso.
Entonces, suponiendo que todo eso sea correcto, la parte que me arroja son los resultados de ps aux
.
Mi comprensión del ps
resultados, es que la sexta columna (RSS), representa el tamaño en kilobytes que el proceso usa para la memoria.
Así que cuando ejecuto este comando:
[[email protected] ~]# ps aux | awk '{sum+=$6} END {print sum / 1024}'
1475.52
¿No debería el resultado ser la columna "usada" de "-/+ buffers/cache" de free -m
?
Entonces, ¿cómo puedo determinar correctamente el uso de memoria de un proceso en Linux? Aparentemente mi lógica es defectuosa.
Respuesta aceptada:
Copié/pegué descaradamente mi respuesta de serverfault el otro día 🙂
El sistema de memoria virtual de Linux no es tan simple. No puede simplemente sumar todos los campos RSS y obtener el valor informado used
por free
. Hay muchas razones para esto, pero mencionaré algunas de las más importantes.
-
Cuando un proceso se bifurca, tanto el padre como el hijo se mostrarán con el mismo RSS. Sin embargo, Linux emplea copia en escritura para que ambos procesos realmente usen la misma memoria. Solo cuando uno de los procesos modifica la memoria, esta se duplicará.
Esto hará que elfree
el número debe ser más pequeño que eltop
Suma RSS. -
El valor RSS no incluye la memoria compartida. Dado que la memoria compartida no es propiedad de ningún proceso,
top
no lo incluye en RSS.
Esto hará que elfree
el número debe ser mayor que eltop
Suma RSS.