Memoria RAM al limite (/proc/meminfo) [Solucionado]

Buenos Dias a Todos

Mi problema es el siguiente:

Tengo un servidor Samba,FTP y VPN bajo una distribucion libre como lo es Debian Lenny con 4 GB de RAM reconocidas, el cual me esta reportando un consumo exagerado de recursos con respecto a la memoria.

Me explico, al ejecutar el comando free:

             total       used       free     shared    buffers     cached
Mem:       4108676    3981384     127292          0      94160    3707620
-/+ buffers/cache:     179604    3929072
Swap:      9768952          0    9768952

e igualmente al ejecutar el comando Top:

top - 10:28:02 up 13 days, 20:17,  1 user,  load average: 1.01, 1.01, 1.00
Tasks: 200 total,   1 running, 199 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni, 83.5%id, 16.5%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   4108676k total,  3981260k used,   127416k free,    94192k buffers
Swap:  9768952k total,        0k used,  9768952k free,  3707620k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
12923 smbdns    20   0  2544 1252  916 R    0  0.0   0:00.06 top
    1 root      20   0  2788 1648 1228 S    0  0.0   0:01.59 init
    2 root      20   0     0    0    0 S    0  0.0   0:00.00 kthreadd
    3 root      RT   0     0    0    0 S    0  0.0   0:00.00 migration/0
    4 root      20   0     0    0    0 S    0  0.0   0:00.00 ksoftirqd/0
    5 root      RT   0     0    0    0 S    0  0.0   0:00.00 watchdog/0
    6 root      RT   0     0    0    0 S    0  0.0   0:01.37 migration/1
    7 root      20   0     0    0    0 S    0  0.0   0:00.44 ksoftirqd/1
    8 root      RT   0     0    0    0 S    0  0.0   0:00.00 watchdog/1
    9 root      RT   0     0    0    0 S    0  0.0   0:00.03 migration/2
   10 root      20   0     0    0    0 S    0  0.0   0:00.06 ksoftirqd/2
   11 root      RT   0     0    0    0 S    0  0.0   0:00.00 watchdog/2
   12 root      RT   0     0    0    0 S    0  0.0   0:01.15 migration/3
   13 root      20   0     0    0    0 S    0  0.0   0:00.00 ksoftirqd/3
   14 root      RT   0     0    0    0 S    0  0.0   0:00.00 watchdog/3
   15 root      RT   0     0    0    0 S    0  0.0   0:00.00 migration/4
   16 root      20   0     0    0    0 S    0  0.0   0:00.00 ksoftirqd/4
   17 root      RT   0     0    0    0 S    0  0.0   0:00.00 watchdog/4
   18 root      RT   0     0    0    0 S    0  0.0   0:00.47 migration/5
   19 root      20   0     0    0    0 S    0  0.0   0:00.00 ksoftirqd/5
   20 root      RT   0     0    0    0 S    0  0.0   0:00.00 watchdog/5
   21 root      RT   0     0    0    0 S    0  0.0   0:00.00 migration/6
   22 root      20   0     0    0    0 S    0  0.0   0:00.00 ksoftirqd/6
   23 root      RT   0     0    0    0 S    0  0.0   0:00.00 watchdog/6
   24 root      RT   0     0    0    0 S    0  0.0   0:08.05 migration/7
   25 root      20   0     0    0    0 S    0  0.0   0:00.00 ksoftirqd/7
   26 root      RT   0     0    0    0 S    0  0.0   0:00.00 watchdog/7
   27 root      20   0     0    0    0 S    0  0.0   0:00.00 events/0
   28 root      20   0     0    0    0 S    0  0.0  24:12.53 events/1
   29 root      20   0     0    0    0 S    0  0.0   0:00.17 events/2
   30 root      20   0     0    0    0 S    0  0.0   0:00.00 events/3
   31 root      20   0     0    0    0 S    0  0.0   0:00.00 events/4
   32 root      20   0     0    0    0 S    0  0.0   0:00.22 events/5
   33 root      20   0     0    0    0 S    0  0.0   0:00.00 events/6
   34 root      20   0     0    0    0 S    0  0.0   0:00.00 events/7
   35 root      20   0     0    0    0 S    0  0.0   0:00.00 cpuset
   36 root      20   0     0    0    0 S    0  0.0   0:00.00 khelper

lo que alcanzo a ver es que el uso de memoria por los procesos es minimo y no le encuentro sentido que los procesos se consuma 4 GB en su totatildad, si solo es un Servidor de Archivos para 8 usuarios.

pero cuando observo el archivo /proc/meminfo:

MemTotal:        4108676 kB
MemFree:          127292 kB
Buffers:           94208 kB
Cached:          3707624 kB
SwapCached:            0 kB
Active:          1448600 kB
Inactive:        2376532 kB
Active(anon):      23988 kB
Inactive(anon):     7856 kB
Active(file):    1424612 kB
Inactive(file):  2368676 kB
Unevictable:           0 kB
Mlocked:               0 kB
HighTotal:       3273500 kB
HighFree:          11780 kB
LowTotal:         835176 kB
LowFree:          115512 kB
SwapTotal:       9768952 kB
SwapFree:        9768952 kB
Dirty:            133508 kB
Writeback:             4 kB
AnonPages:         23420 kB
Mapped:            20508 kB
Shmem:              8536 kB
Slab:              99572 kB
SReclaimable:      88688 kB
SUnreclaim:        10884 kB
KernelStack:        1744 kB
PageTables:          932 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    11823288 kB
Committed_AS:     200020 kB
VmallocTotal:     122880 kB
VmallocUsed:       69556 kB
VmallocChunk:      29128 kB
HardwareCorrupted:     0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:        8184 kB
DirectMap2M:      903168 kB

En el segmento Active me encuentro 3 valores Active, Active (anon) y Active (file).

quisiera saber que me indica cada uno de los valores y por que el consumo de estos.

De antemano muchas gracias por la colaboracion ...

saludos;

No veo el problema

             total       used       free     shared    buffers     cached
Mem:       4108676    3981384     127292          0      94160    3707620
-/+ buffers/cache:     179604    *3929072*
Swap:      9768952          0    9768952

te esta diciendo que tienes 3929072 libres(3,9 gigas), esos 3981384 es porque linux cachea mucho para mejorar el rendimiento entre otras cosas, ¿de que te sirve tener 3 gigas libres muertos de risa?

Hombre 180 megas usados no es nada.

elsenyordelcaos escribió:

Hombre 180 megas usados no es nada.

Vaya me encontraba editando jeje

Hola a Todos

muchas gracias por su pronto respuesta ...

ya me quedo en claro que la memoria se esta consumiendo solo en cache 3.7 GB de memoria RAM para mejorar el rendimiento del sistema.

ahora quisiera saber lo siguiente:

1. en meminfo porque este me reporta como memoria Activa 1.4 GB ??
2. Que me indica entonces lo valores Active (anon) y (file)
3. (Primera vez que me pasa) porque esta utilizando 3.7 GB para mejorar rendimiento si ni siquiera tiene entorno grafico ?

Mil disculpas por las molestias causadas pero no utilizo Debian desde su kernel 2.4 y tal vez este atrasado con el tema ...

Saludos;

Te recomiendo instalar htop, es mucho mas practico a la hora de ver el uso de la memoria ymuchas mas cosas.

Saludos

myasystems escribió:

pero cuando observo el archivo /proc/meminfo:

MemTotal:        4108676 kB
MemFree:          127292 kB
Buffers:           94208 kB
Cached:          3707624 kB
SwapCached:            0 kB
Active:          1448600 kB
Inactive:        2376532 kB
Active(anon):      23988 kB
Inactive(anon):     7856 kB
Active(file):    1424612 kB
Inactive(file):  2368676 kB
Unevictable:           0 kB
Mlocked:               0 kB
HighTotal:       3273500 kB
HighFree:          11780 kB
LowTotal:         835176 kB
LowFree:          115512 kB
SwapTotal:       9768952 kB
SwapFree:        9768952 kB
Dirty:            133508 kB
Writeback:             4 kB
AnonPages:         23420 kB
Mapped:            20508 kB
Shmem:              8536 kB
Slab:              99572 kB
SReclaimable:      88688 kB
SUnreclaim:        10884 kB
KernelStack:        1744 kB
PageTables:          932 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    11823288 kB
Committed_AS:     200020 kB
VmallocTotal:     122880 kB
VmallocUsed:       69556 kB
VmallocChunk:      29128 kB
HardwareCorrupted:     0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:        8184 kB
DirectMap2M:      903168 kB

En el segmento Active me encuentro 3 valores Active, Active (anon) y Active (file).

quisiera saber que me indica cada uno de los valores y por que el consumo de estos.

Los buscadores son tus amigos:
http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/en-US/Refere...
http://www.linuxweblog.com/meminfo
http://unixfoo.blogspot.com/2008/02/know-about-procmeminfo.html

Muchas gracias Froggy ... instalare entonces el htop para observar con mas detalle.

y gracias a ti tambien nerve_net por la sugerencia pero te cuento que yo ya habia explorado en los buscadores en busca de respuesta y lo que me dice de Active es que te indica la cantidad de memoria en KB activa (en uso). lo que quisiera saber es Active (anon) y Active (file) que consumo de memoria es el que me indica para poder estar tranquilo o intranquilo con respecto al consumo de mi Distribucion.

Si por alguna razon active (file) me indica el consumo de los archivos que se encuentran en ejecución, entonces yo ya sabría como proceder, pero como aun no me encuentro seguro de sus características :-S.

Espero me disculpe por la insistencia con este tema ...

Cualquier colaboracion sera bien recibida

Saludos;

Sobre meminfo:

Primero: Olvida por completo que hablamos de ficheros o de programas, simplemente hablamos de memoria y de la gestión que hace el kernel de la misma. Meminfo informa sobre el uso de la memoria, así que tampoco tiene relación con ficheros.

Segundo: Active = Active (file) + Active (anon)
Si sumas ambos valores obtendrás siempre Active como total. Lo mismo para Inactive, Inactive (anon) e Inactive (file)

Tercero: Active y sus hermanas

Active quiere decir memoria que recientemente han sido usada y que no se utiliza a menos que sea estrictamente necesario.
Active (anon): es lo anterior pero matizando que es esa memoria activa es anónima
Active (file): es lo anterior pero matizando que es esa memoria activa no es anónima, vamos que está registrada (filed). No tiene relación con ficheros.

Podrías pensar que es memoria en uso, pero también los es Inactive, el kernel las designa como Active o Inactive en cuanto a su frecuencia de uso, es una forma de catalogar la memoria usada.

En cualquier caso hablamos de memoria utilizada en ambos casos (Active e Inactive) nunca de ficheros, siempre memoria. El kernel a ese nivel sólo gestiona bloques de memoria (o páginas) no las relaciona con ficheros o códigos de programa en ejecución. Esa información, la del uso de la memoria es la que devuelven free, meminfo o vmstat.

Información sobre meminfo:

meminfo forma parte del sistema de ficheros proc, proc forma parte del kernel de linux y su documentación completa junto con su código fuenta la tienes en cualquiera de los paquetes de las fuentes completas del kernel que puedes instalarte con tu gestor de paquetes favorito.

La documentación de proc la tienes en la siguiente ruta de las fuentes del kernel ./Documentation/filesystems/proc.txt ahí encontrarás la documentación de meminfo que ya conoces.

Como con eso no tendrás suficiente deberías leer las fuentes del código de meminfo, para empezar consulta: ./fs/proc/meminfo.c y ./include/linux/mmzone.h

A partir de ahí puedes ir leyendo todas las fuentes aunque mejor que todo eso sería hacerte con un manual sobre el kernel de Linux.

Ok perfecto ... esa era a respuesta que necesitaba.

PD: no hace falta aclarar que cuando hablaba de ficheros refiriéndome a Active (file) buscaba era aclarar el punto al que queria llegar (No estaba afirmando).

Muchas gracias neve_net por la respuesta ...