Linux se comió mi RAM

No hay problema… Tu RAM esta bien!

¿Que ha pasado?

Linux toma la memoria no utilizada y la emplea como caché para disco. ¡Esto hace parecer que la memoria este baja, pero no es así! ¡Todo esta bien!

¿Porque hace eso?

¡El caché para disco hace que el sistema sea mucho mas rápido! No hay problemas, con excepción para los novatos confundidos. De ninguna manera roba la memoria a las aplicaciones, ¡jamás!

¿Que pasa si quiero correr mas aplicaciones?

Si una aplicación necesita mas memoria, toma de nuevo un trozo de la que se había utilizado como caché para disco. ¡El caché para disco siempre devolverá la memoria de inmediato! ¡La computadora no está baja de memoria RAM!

¿Necesito mas SWAP?

No, el caché para disco utiliza únicamente la memoria que las aplicaciones no utilizan. No se utilizará la SWAP. Si las aplicaciones quieren mas memoria, la tomarán de la que se utiliza para caché de disco. No comenzarán a utilizar SWAP.

¿Como detengo a Linux para que deje de hacer esto?

El caché para disco no se puede deshabilitar. La única razón para que alguien quiera desactivar el caché para disco es porque piensa que necesita mas memoria para sus aplicaciones, ¡pero no es así! El caché para disco hace que las aplicaciones carguen mas rápido y corran mejor, ¡pero nunca utilizará la memoria de las aplicaciones! ¡Por lo tanto no hay razón para deshabilitarlo!

¿Porque top y free dicen que toda la RAM se utiliza si no es cierto?

Esto es una mala interpretación de términos. Ambos usted y Linux aceptan que la memoria utilizada por aplicaciones es “usada”, mientras que la memoria que no es usada por ninguna es “libre”.

¿Pero como llamarías a la memoria que es usada para algo y disponible para aplicaciones?

Usted podría llamarla “libre” pero Linux le llama “usada”.

Memoria que Tu la llamas Linux la llama
es utilizada por las aplicaciones usada usada
es utilizada por algo, pero disponible para aplicaciones libre usada
no es utilizada por algo libre libre

Ese “algo” es lo que se llama en top y free “buffers” y “cached”. La terminología suya y de Linux difieren, piensas que estas bajo en RAM y cuando no lo estás.

¿Cómo puedo ver la cantidad de memoria RAM libre que realmente tengo?

Para ver la cantidad de memoria que esta libre para las aplicaciones, ejecute free -m, observe la fila que dice “-/+ buffers/cache” y la columna que dice “free”. Esa es la respuesta en megabytes.

$ free -m
             total       used       free     shared    buffers     cached
Mem:          1504       1491         13          0         91        764
-/+ buffers/cache:        635        869
Swap:         2047          6       2041
$

Si no sabes como leer los números, pensarás que la memoria esta llena al 99% cuando realmente esta al 42%.

¿Como puedo validar estas cosas?

Mira esta página para mayor detalle y como puedes experimentar con el caché para disco.

Referencias

linuxsecomiomiram.txt · Last modified: 2014/07/24 14:41
Public Domain Except where otherwise noted, content on this wiki is licensed under the following license: Public Domain