Algunas veces el sistema no libera memoria RAM que ya no está siendo utilizada y aunque es liberada bajo demanda —por llamarle de alguna manera— cuando abrimos un nuevo programa, se puede liberar también de manera manual introduciendo un simple comando en nuestra consola.
Antes que nada, para saber cuánta memoria está en uso, cuánta está libre y cuánta está guardada en el caché ejecutamos el comando:
free -m
Para ver el uso en tiempo real utilizamos:
watch -n 1 free -m
Cualquiera de los dos comandos nos devolverá algo similar a esto:
total used free shared buffers cached Mem: 3990 3784 206 0 56 2443 -/+ buffers/cache: 1284 2705 Swap: 1027 0 1026
Como se puede observar hay una gran cantidad de memoria en el caché, de la cual aproximadamente la mitad está siendo utilizada por las aplicaciones abiertas. Para liberar páginas guardadas en el caché, inodos y entradas de directorio basta con ejecutar el comando:
sudo sync
Seguido de:
sudo sysctl -w vm.drop_caches=3
Es importante no olvidar ejecutar
sudo sync
pues de lo contrario podríamos perder información presente en la memoria RAM que aún no ha sido guardada en el disco duro.
Más información – Revisa la temperatura de tu ordenador con el comando ‘sensors’
Fuente – UpUbuntu
10 comentarios, deja el tuyo
Hay un script de elatareao que se puede encontrar en su página llamado freecache.py que libera la cache en caso de ocupar el 90% de RAM.
http://www.atareao.es/descargas/scripts/
Y que se gana liberando la memoria que se usa para cache? Obligamos a la maquina a volver a leer del disco muchas cosas que ya tenia en memoria. La maquina va a andar mas lenta hasta que se vuelva a llenar la cache…
No os deis tanto en la cabeza. El kernel de Linux se encarga de liberar esa memoria que queda. No veo ningún sentido.
Yo no uso ni siquiera esa implementación, porque de hecho, tal como dice Cristian Yones, mejor que no se use eso, porque acabaréis re-escribiendo tanto tiempo el disco duro.
Es mejor tenerlo tal como hemos dicho. No tocar nada.
Saludos…
En mi caso si funcionó perfectamente. Ya que tengo un servidor con asterisk en el cual se realizan llamadas. Se me había consumido casi 16 gigas de ram de las 16 disponibles y se me estaba subiendo la carga. Al correr el procedimiento, me liberó la memoria y quedó en un promedio de 5gb consumidas permitiendo al sistema contar con memoria ram disponible para cualquier tarea y mejorar el rendimiento de la máquina. Gracias por la solución. Tal vez como dice santiago, no siempre es útil, pero en mi caso si lo fue.
Genial solución, sobretodo si deseamos copiar archivos que pesan 5, 10, 20, 30 GB, …
Muchas gracias y saludos
Me ha servido, gracias.
Siempre me sirve, ya que hago pruebas en servers virtuales con 500 mb de ram
bueno… por lo que entiendo mas sirve para cuando se va a trabajar con archivos grandes…
en mi caso no es necesario.. de igual forma gracias por compartir
Hola a mi no me anda el comando 1 que hago?
Hola a mi no me anda el primer comando