Comandos.- Manipular la memoria caché en Linux

Hay programas que consumen RAM pero no la sueltan cuando se cierran. Es el problema que tenemos con Firefox, ya están trabajando en eso. Mientras tanto se puede liberar la RAM desde la consola. Los usuarios a partir de la versión 2.6.16 del Kernel podemos administrar el manejo de la memoria caché utilizando el archivo /proc/sys/vm/drop_caches

¿Qué ventajas tengo con liberar RAM? Doy lata con esto, pero es la verdad; significa más tiempo de batería. Además, cuanto el tamaño de tu RAM es más bien pequeño no puedes malgastarla permitiendo que un programa la ocupe sin necesidad.

El archivo /proc/sys/vm/drop_caches es donde se indica al sistema el manejo de la memoria. Puede tomar valores del 0 (cero) al 3 (tres).

Valores:

0 ==> No libera nada y cede el control al Kernel
1 ==> Libera pagecache
2 ==> Libera dentries y inodes
3 ==> Libera pagecache, dentries y inodes

Sintaxis:

echo "0 |1 |2 |3" > /proc/sys/vm/drop_caches

Haciendo las cosas bien, primero se graban los datos pendientes en la cache con el comando sync, aconsejan por ahí dar unos segundos de margen antes de liberar la memoria, para eso hacemos uso del comando sleep y a continuación modificamos el valor del archivo /proc/sys/vm/drop_caches. El comando free lo utilizamos para ver el estado de la memoria. El comando sync y la modificación de /proc/sys/vm/drop_caches requieren permisos de administrador.

En los ejemplos asigne el valor 3 porque es el que más memoria libera, pero se puede sustituir por cualquiera de los otros.

Teclear en la terminal:

free -mt
sudo su
sync ; sleep 5s ; echo "3" > /proc/sys/vm/drop_caches
exit
free -mt

Nota: Después de hacer el cambio ya no se me permite ceder de nuevo el control del manejo de la memoria a el kernel, ¿será porque estoy en un Ubuntu alpha o es otra cosa?

Otra forma de hacer el cambio del manejo de memoria es casi igual que el anterior, pero además se usa el comando tee como recomiendan en linuxatemyram.com. El comando tee hace que podemos ver el valor que se mando a /proc/sys/vm/drop_caches escrito en la terminal y al mismo tiempo se sustituye el valor anterior por el nuevo.

free -mt
sudo su
sync ; sleep 5s ; echo "3" | tee /proc/sys/vm/drop_caches
exit
free -mt

 

 

 

Enlace corto a esta entrada: http://wp.me/pjHsf-OV

 

 

 

http://www.linuxatemyram.com/play.html
http://cyb3rpunk.wordpress.com/2011/04/28/liberar-memoria-en-gnulinux/
http://www.linuxinsight.com/proc_sys_vm_drop_caches.html
http://redes-privadas-virtuales.blogspot.com/2009/07/liberar-la-memoria-ram-cacheada-en.html
http://www.ameyapandit.com/2010/12/free-cache-from-memory/
http://www.skamasle.com/como-liberar-la-memoria-cache-en-linux-comando-para-liberar-cache-que-es-la-cache/ <== Tiene una excelente explicación de lo que es caché.

 

 

 

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s