jueves, 2 de febrero de 2012

Limpiar cache para liberar memoria

Conforme utilizamos el ordenador, al menos, los que tenemos uno poco potente, comprobamos que el rendimiento va decayendo poco a poco, y la memoria disponible parece “evaporarse” misteriosamente.

La causa del problema, es que el sistema utiliza una caché en memoria, para que las aplicaciones funcionen más rápidamente, al acceder a esta  caché, que contiene los datos que supuestamente van a necesitar.

El remedio mas utilizado por la red para rescatar esta memoria, es ejecutar como superusuario:
echo "3" > /proc/sys/vm/drop_caches
Con esto se dice al sistema que no utilice estas cachés y libere el espacio que ocupan. Pero si antes no hemos sincronizado los datos con las escrituras en disco pendientes, es posible que parte de nuestra información actualizada más recientemente desaparezca, por lo que previamente hay que sincronizar los datos utilizando sync. Nos quedaría un comando tal que:
sync && echo 3 > /proc/sys/vm/drop_caches
Pero esto tiene dos inconvenientes. Primero y evidente, que es difícil de recordar y nos equivocaremos con facilidad al teclearlo. El segundo, y mas importante, es que dejamos inhabilitada la caché, con lo que empeoramos el funcionamiento del sistema.

Vamos a solventar estos dos problemas, creando un pequeño script fácil de lanzar, que limpie la caché y la vuelva a habilitar. Para ello creamos el fichero /usr/local/bin/limpiador.sh con nuestro editor favorito, por ejemplo, gedit y le damos el siguiente contenido
#!/bin/bash
sync
echo 3 > /proc/sys/vm/drop_caches
sleep 3
echo 0 > /proc/sys/vm/drop_caches
Luego le damos permisos para que todos puedan usarlo y para que sea ejecutable
  • chmod a+x /usr/local/bin/limpiador.sh
Y a partir de este momento, solo tenemos que lanzarlo desde la consola (o con un lanzador desde el entorno gráfico) para limpiar nuestra memoria.

No hay comentarios:

Publicar un comentario

prekes sodui