tag - Linux gratis muestra un alto uso de memoria pero la parte superior no
puddletag (2)
Además, como la primera línea muestra el total used free shared buffers cached Mem: 7989 7734 254 0 28 7128 -/+ buffers/cache: 578 7411
Si agregamos (en caché [7128] + buffers [28] + free [254]), obtendremos aproximadamente el valor [7411] de la segunda línea libre 7128 + 28 + 254 = 7410
En RedHat Linux 6.2 estoy ejecutando free -m
y muestra casi todos los 8GB
utilizados
total used free shared buffers cached
Mem: 7989 7734 254 0 28 7128
-/+ buffers/cache: 578 7411
Swap: 4150 0 4150
Pero al mismo tiempo en la top -M
no puedo ver ningún proceso que use toda esta memoria:
top - 16:03:34 up 4:10, 2 users, load average: 0.08, 0.04, 0.01
Tasks: 169 total, 1 running, 163 sleeping, 5 stopped, 0 zombie
Cpu(s): 0.7%us, 0.3%sy, 0.0%ni, 98.6%id, 0.4%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 7989.539M total, 7721.570M used, 267.969M free, 28.633M buffers
Swap: 4150.992M total, 0.000k used, 4150.992M free, 7115.312M cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1863 sroot 20 0 398m 24m 9.8m S 0.3 0.3 3:12.87 App1
1 sroot 20 0 2864 1392 1180 S 0.0 0.0 0:00.91 init
2 sroot 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 sroot RT 0 0 0 0 S 0.0 0.0 0:00.07 migration/0
4 sroot 20 0 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0
5 sroot RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
6 sroot RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0
7 sroot RT 0 0 0 0 S 0.0 0.0 0:00.08 migration/1
8 sroot RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/1
También probé este script ps mem pero onlt muestra que se está utilizando una memoria de 400MB.
No mires la línea "Mem", mira la que está debajo.
El kernel de Linux consume tanta memoria como puede para proporcionar el caché de E / S (y otros búferes no críticos, pero el caché va a ser la mayor parte de este uso). Esta memoria se cede a los procesos cuando lo solicitan. La línea "- / + buffers / caché" muestra los valores ajustados después de que se cuenta el caché de E / S, es decir, la cantidad de memoria utilizada por los procesos y la cantidad disponible para los procesos (en este caso, 578 MB utilizados y 7411 MB gratis).
La diferencia de la memoria utilizada entre la línea "Mem" y "- / buffers / caché" muestra cuánto está usando el kernel para el almacenamiento en caché: 7734MB - 578MB = 7156MB en el caché de E / S. Si los procesos necesitan esta memoria, el kernel simplemente reducirá el tamaño de la memoria caché de E / S.