Sin memoria después de una ampliacion

Forums: 

Hola a todos, a ver si alguien me puede decir porqué razón me quedo sin memoria, soy novato en administración de sistemas y puede que sea una tontería, pero asi voy aprendiendo.

El caso es que tengo un servidor que usualmente tenía 1 GB de memoria libre, de 8GB que tiene en total, y como quiero meter mas carga al sistema (otras aplicaciones) decidí meterle mas memoria. El caso es que metí 6GB más con lo que tiene un total de 14GB, pero al hacer un top, veo que sigo teniendo poca memoria libre, a veces 1GB y en ocasiones casi 3GB, pero aún no he metido nueva carga.

Quiero desplegar una Maquina Virtual alli que necesita 2GB de memoria, y si solo tiene libre entre 1 y 3GB tengo miedo de que el sistema colapse por quedarse sin memoria.

Alguien me puede decir porqué se usa mas memoria con la misma carga, y que podría ocurrir si arranco una máquina virtual que cogería 2GB de memoria teniendo tan poca??

Saludos

Respuesta

No tengo aún mucha idea de linux, el Sistema Operativo que tengo es el Red Hat Enterprise Linux 4.4, no se si con eso sabes el kernel que tengo, sino indicame por favor como lo averiguo.

los kernel de 32 bits

Imagen de Epe

los kernel de 32 bits estándares soportan solamente hast 3.9GB de RAM.

Ahora si quieres soportar más de 3.9GB de RAM debes usar un hardware de 64bits o si no puedes debes aprovecharte de una técnica llamada PAE que permite mediante llamadas indirectas aprovechar toda esa memoria.

PAra esto en tu RHEL pones:


up2date -i kernel-PAE

Saludos
epe
--
NuestroServer.com
Ecuador: +(593) 9 9246504, +(593) 2 600 4454
USA: +1 305 359 4495, España: +34 91 7617884


Saludos
epe

EcuaLinux.com

+(593) 9 9924 6504

Servicios en Software Libre

La cantidad de memoria libre

Imagen de acl

La cantidad de memoria libre tienes que entenderlo como una porción de memoria que no está siendo usada ni por aplicaciones ni por los caches.

Usualmente, linux cachea las lecturas de disco a memoria lo más que puede (algo que puedes configurar, por cierto) y deja sin uso una mínima cantidad de memoria. La lógica es que no quieres que se desperdicie memoria si puedes usarla como cache.

Fijate en la cantidad de cache que te da top. Esa cantidad se reducirá conforme las aplicaciones necesiten memoria.

Eso sí, fíjate que el kernel sí te reconozca toda la memoria que tienes.
--
haber != a ver
ha != a

En respuesta

Gracias, entiendo lo que quieres decir, asi pues si levanto una máquina virtual que consume 2GB de ram, el sistema lo liberaría del tipo cached y la memoria libre que quedaría sería prácticamente la misma, ¿es así?
Aqui te muestro los datos que me da el top, lo que me dices de que el kernel me reconozca toda la memoria, supongo que al aparecer aqui ya estoy viendo que sí.

Mem: 14551276k total, 14142552k used, 408724k free, 464132k buffers
Swap: 4192956k total, 0k used, 4192956k free, 12615168k cached

Por eso digo que veo poca memoria libre (408724k), este valor varía hasta 2GB, y lo que decía yo es que no se donde se mete esa memoria, que por lo visto está en cached (12615168k). De modo que tendría estos 12GB libres que si lanzo aplicaciones que consuman 2 o 3 GB se liberaría de cached y lo usarían mis aplicaciones, he entendido bien?

Muchas gracias por las aclaraciones y ayuda

Has entendido bien. Haz la

Imagen de acl

Has entendido bien. Haz la prueba con una aplicacioncita en C que te pida unos 2GB de memoria con malloc y escribe en unas cuantas páginas. Fíjate con top qué es lo que pasa.

O arranca el vmware con una maquina virtual más chica.
--
haber != a ver
ha != a