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
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
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:.