El uso de memoria de Linux no cuadra

El uso de memoria de Linux no cuadra

Intento monitorear el uso de la memoria en mi servidor Ubuntu. Cuando ejecuto el comando 'superior', muestra que se utiliza el 70% de la memoria. (se muestra en la línea 'Mem:'). Pero quiero encontrar los procesos que toman el uso de mi memoria y sumarlos, está lejos del 70%. ¿Alguien puede ayudarme a explicarme eso?

¡Muchas gracias!

Aquí está el resultado de mi comando principal:

arriba - 20:59:06 hasta 23 días, 33 min, 3 usuarios, carga promedio: 0,06, 0,12, 0,09
Tareas: 92 en total, 1 en ejecución, 91 durmiendo, 0 detenido, 0 zombie
CPU(s): 0,3%us, 0,2%sy, 0,0%ni, 99,5%id, 0,0%wa, 0,0%hi, 0,0%si, 0,0%st
Memoria: 4124236k en total, 2903104k usados, 1221132k libres, 147508k buffers
Intercambio: 4192252k en total, 440k usados, 4191812k gratis, 2596860k en caché

  PID USUARIO PR NI VIRT RES SHR S %CPU %MEM TIME+ COMANDO
30558 mysql 20 0 311m 36m 5956 S 0 0.9 0:00.74 mysqld
28848 jiechao 20 0 50688 9244 3144 S 0 0.2 0: 05.65 pitón
  956 raíz 20 0 11712 8004 2964 S 0 0,2 0:39,26 ddclient - dormir
28846 jiechao 20 0 49256 7652 3280 S 0 0.2 0: 07.17 pitón
22284 jiechao 20 0 10400 6876 1664 S 0 0.2 0:00.49 fiesta
30433 jiechao 20 0 10344 6776 1620 S 0 0.2 0: 00.46 fiesta
31053 jiechao 20 0 10344 6768 1612 S 0 0.2 0: 00.47 fiesta
28847 jiechao 20 0 48168 6096 2980 S 0 0.1 0: 00.59 pitón
29178 www-datos 20 0 228m 5392 2052 S 0 0.1 0:00.06 apache2
29179 www-datos 20 0 12796 5148 1920 S 0 0.1 0:00.02 apache2
29180 www-datos 20 0 12796 5148 1920 S 0 0.1 0:00.02 apache2
29181 www-datos 20 0 12796 5148 1920 S 0 0.1 0:00.02 apache2
29182 www-datos 20 0 12796 5148 1920 S 0 0.1 0:00.02 apache2
29183 www-datos 20 0 12796 5148 1920 S 0 0.1 0:00.02 apache2
  999 raíz 20 0 11396 3948 2052 S 0 0.1 0:21.21 apache2
  926 gritos 20 0 24572 3284 2280 S 0 0.1 0:00.18 gritos
30933 raíz 20 0 9604 3104 2484 S 0 0.1 0:00.00 sshd
22164 raíz 20 0 9604 3096 2484 S 0 0.1 0:00.01 sshd
30313 raíz 20 0 9604 3096 2480 S 0 0.1 0:00.00 sshd
24302 raíz 20 0 9632 3024 2428 S 0 0.1 0:00.07 sshd
  787 raíz 20 0 6664 2424 1988 S 0 0.1 0:00.05 sshd
    1 raíz 20 0 3504 1876 1276 S 0 0,0 0:01,57 inicio
24421 jiechao 20 0 9632 1596 992 S 0 0.0 0:00.00 sshd
  812 syslog 20 0 31044 1484 1008 S 0 0,0 1:47,00 rsyslogd

Respuesta1

Seguro que ese número es una combinación de RAM utilizada por el proceso y buffers y caché para archivos. Linux tiene la filosofía de maximizar el uso de RAM para los archivos a los que se accede en lugar de tener que acceder al disco duro para estos archivos.

Intente usar el comando freeo mirar el kernel mismo a través de este comando,cat /proc/meminfo.

gratis

% free
             total       used       free     shared    buffers     cached
Mem:       7987492    7717152     270340          0     314644    2435048
-/+ buffers/cache:    4967460    3020032
Swap:      5963772       1304    5962468

gato /proc/meminfo

% cat /proc/meminfo 
MemTotal:        7987492 kB
MemFree:          284328 kB
Buffers:          314384 kB
Cached:          2427852 kB
SwapCached:          116 kB
Active:          4698232 kB
Inactive:        2374796 kB
Active(anon):    3756264 kB
Inactive(anon):   768392 kB
Active(file):     941968 kB
Inactive(file):  1606404 kB
Unevictable:          68 kB
Mlocked:              68 kB
SwapTotal:       5963772 kB
SwapFree:        5962468 kB
Dirty:               452 kB
Writeback:             0 kB
AnonPages:       4330964 kB
Mapped:           185540 kB
Shmem:            193864 kB
Slab:             306532 kB
SReclaimable:     261520 kB
SUnreclaim:        45012 kB
KernelStack:        6192 kB
PageTables:        94376 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     9957516 kB
Committed_AS:    9671884 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      585392 kB
VmallocChunk:   34359040964 kB
HardwareCorrupted:     0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:       12288 kB
DirectMap2M:     8237056 kB

El freecomando te mostrará la RAM total, 7987492, en mi caso, de las cuales 7717152 están en uso y 270340 están libres. Esta es una combinación de RAM, buffers y caché. La segunda línea muestra cuánta RAM están utilizando los buffers y el caché, 4967460, lo que significa que realmente tengo 3020032 de RAM libres.

Desde unartículo de itworld.comsobre cómo entender el uso de la memoria:

El número de buffers representa bloques en memoria que resultan del acceso del kernel al disco, como cuando el kernel necesita leer el contenido de los archivos. La cifra almacenada en caché nos indica cuánta RAM se utiliza para almacenar en caché el contenido de los archivos leídos recientemente. La cifra del búfer aumenta cuando se omite la capa del sistema de archivos, mientras que la caché crece cuando se utiliza el sistema de archivos. Ambos crecen a medida que aumentan las operaciones de lectura.

NOTA:Tenga en cuenta que el administrador de memoria del kernel de Linux liberará cualquier RAM que se utilice para buffers y caché si una aplicación realmente lo necesita.

Recursos

información relacionada