Linux y el uso de memoria

Este artículo lo escribo para esclarecer un poco el uso de la memoria que hace GNU/Linux y que difiere un poco a lo que nos tiene acostumbrados Windows. Lo primero que debemos de tener claro es que Linux no consume más RAM de la que necesita. Sí es cierto que hace un empleo más eficiente de la misma, para acelerar aplicaciones. Esto es lo que se conoce como memoria caché. La primera vez que te fijas en la memoria que se usa, puede que quedes asustando. Ejecutas el comando top y observas lo siguiente,
top - 19:36:09 up 3 days,  7:50,  8 users,  load average: 1.94, 1.57, 1.30
Tasks: 191 total,   2 running, 187 sleeping,   0 stopped,   2 zombie
Cpu(s): 23.4%us, 30.8%sy,  0.0%ni, 45.4%id,  0.3%wa,  0.0%hi,  0.0%si
Mem:   2065160k total,  1950980k used,   114180k free,    23344k buffers
Swap:  1951888k total,   295528k used,  1656360k free,   384324k cached
En este caso, quedan aproximadamente 100Mb de memoria libre (114180k) y tengo prácticamente 2Gb de ella usada. Si mi sistema no está haciendo nada, entonces ¿qué pasa?
GNU/Linux emplea masivamente la memoria RAM para cachear aquellas partes del disco o aplicaciones que se han abierto recientemente.
La forma más sencilla de explicarlo es con un ejemplo. Abrimos Google-Chrome y lo cerramos. Parte de los datos y librerías necesarias para usarlo quedarán residualmente en la memoria durante un tiempo por si lo volvemos a abrir. Esto presenta la ventaja de que si lo volvemos a arrancar, el proceso será mucho más rápido (no hay que acceder a disco). En caso contrario, si la memoria es requerida, se liberará.
Se puede alterar este comportamiento, pero para la mayoría de los usuarios el kernel gestionará de forma eficiente la RAM.
Y si quiero saber la memoria exacta que tengo libre, ¿cómo hago?
Muy sencillo. Para saberlo debes emplear el comando free y fijarte en la tercera línea, que es la que realmente da los datos de interés.
shell> free -m
             total    used    free    shared    buffers    cached
Mem:          2016    1910     106         0         23       383
-/+ buffers/cache:    1502     513
Swap:         1906     288    1618
Como vemos, el comando free devuelve unos valores muy similares a top (algo lógico), pero si nos fijamos en la línea -/+ buffers/cache veremos la parte que nos interesa, la cantidad de RAM libre que realmente tiene el sistema, pues la memoria caché se debe considerar también memoria libre.
Como veis no son 100Mb, sino 512Mb, lo cual ya está mejor.

La entrada Linux y el uso de memoria la puedes leer en Puppet Linux.


No hay comentarios :

Publicar un comentario

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Últimos comentarios