Actualizado el lunes, 15 agosto, 2016
Cuando un sistema lleva mucho tiempo iniciado, ya sea un pc doméstico o un servidor tiende a sobrecargarse la ram con el consecuente entorpecimiento del sistema en general. Pero esto tiene solución ya que a partir del kernel 2.6.16 se introdujo una nueva característica que se ocupa automáticamente de solucionarlo, pero a veces por diversas circunstancias cuando realiza el proceso, el sistema esta a punto del colapso y necesita liberar «YA» y urgente. Veremos cómo lo podemos realizar nosotros ya sea de forma manual, con tarea cron o con un script. No solo es útil en tu PC, sino también en servidores, el uso de java en Apache, consultas, etc, genera que la RAM se llene y no se vacíe, si tenemos un vps de 512 de RAM, evitaremos el tener que reiniciar algún servicio o el servidor. En el directorio /proc/sys/vm/ tenemos un fichero llamado drop_caches, que se encarga de decirle al kernel Linux que hacer con las caches RAM.
El comando es muy simple y nada intrusivo.
Debes ser root. Podrás observar los cambios en la ram con el comando:
free
Ejecutar de forma manual:
sync; echo 3 > /proc/sys/vm/drop_caches
Crear script automático:
nano /root/limpiar_memocache.sh
Copia y pega el script. Guarda:
#!/bin/sh # Author: SergioGB # Licence: GNU GPLv3-Sololinux.es # Script liberador de ram sync; echo 3 > /proc/sys/vm/drop_caches ; echo "Memo-Cache Liberada"
Crea tarea cron para automatizarlo, define el tiempo tal como se explica en este post:
0 * * * * /root/limpiar_memocache.sh
Ejecutar script de forma manual:
nano /usr/local/bin/liberaram
Copia y pega el script. Guarda:
#!/bin/sh # Author: SergioGB # Licence: GNU GPLv3-Sololinux.es # Script liberador de ram sync; echo 3 > /proc/sys/vm/drop_caches ; echo "Memo-Cache Liberada" exit 0
Dale permisos:
chmod +x /usr/local/bin/liberaram
En terminal o consola escribes lo siguiente para ejecución manual:
sudo liberaram
Explicación:
Antes de terminar quiero explicar lo que es exactamente el valor sync; echo 3, a lo mejor te interesa modificarlo.
- 0: No libera, por defecto lo controla el sistema.
- 1: Libera pagecache
- 2: Libera inodos y dentries
- 3: Libera inodos, pagecache y dentries, osea todo.