miércoles, 17 de septiembre de 2014

Solucion - Ayuda Linux consume toda la Ram

Una duda muy frecuente cuando uno comienza con Linux, es ¿Porque linux se come toda la RAM?, recien inicie el sistema y tengo toda la memoria llena.
De echo es algo que me paso en mis inicios y tarde hasta encontrar la respuesta, y viendo por varios foros y comunidades es una duda muy recurrente.

La manera mas rápida para consultar el estado de la memoria ram, es ejecutar en consola free -m

Como ver la ram libre de linux
Al ver la salida del comando,  uno lee la primer fila y piensa que tiene solo libre 199MB, y que 3675MB están usados
La verdad es que Linux no esta consumiendo toda esa RAM. 
Lo que sucede es que Linux presta la memoria sin usar a la cache de disco.

¿Esto es malo? No para nada, todo lo contrario. La cache de disco permite que el sistema sea mas rápido. El único inconveniente(menor) es que presta a confusión a los usuario novatos al querer saber cual es la memoria RAM libre del sistema.

¿Entonces deshabilito la cache?No, no es necesario, ya que el sistema solo entrega a la cache la RAM que este sin usar. En el caso de que las aplicaciones necesitan mas RAM, la tendrán disponibles, ya que la cache devolverá la RAM, cuando el sistema se lo solicite.
Es decir que la cache permite que el sistema sea mas ligero y las aplicaciones carguen mas rápido sin limitar la cantidad de memoria para las aplicaciones.

Pero entonces ¿por que free indica que esta toda la memoria usada?
Esto es simplemente un tema de términos.
Nosotros , incluso Linux, consideramos como memoria usada a toda aquella asignada a las aplicaciones, mientras que libre a aquella que no este asignada.
Pero linux considera como usada a la que entrego a la cache del disco.
Pero como sabemos que esta esta disponible para nuestras aplicaciones, entonces la memoria libre es la que se indica en la columna free de la fila -/+ buffers/cache:, para el ejemplo es 2482MB
Indicacion de cual es la memoria libre del sistema
Y por lo tanto la memoria usada por aplicaciones es la diferencia entre la memoria total y la memoria libre antes mencionada, que se indica en la columna used de la fila -/+ buffers/cache:.
Comparte este articulo
  • Comparte con Facebook
  • Comparte con Twitter
  • Comparte con Google+
  • Comparte con Stumble Upon
  • Comparte con Evernote
  • Comparte con Blogger
  • Comparte con Email
  • Comparte con Yahoo Messenger
  • More...

2 comentarios:

  1. O instalas htop y eso te muestra la info real.
    Abrazo.

    ResponderEliminar
  2. No es que la info no es real, es solo cuestión de interpretación y saber donde leerla.
    La ram se esta usando, pero a su vez esta disponible para las aplicaciones.
    Si hablamos de un Linux embebido, probablemente no tengas la posibilidad de instalar htop.

    Gracias por el comentario! ;) Peor si es una buena aplicación htop.

    ResponderEliminar