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:
1 | free |
Ejecutar de forma manual:
1 | sync; echo 3 > /proc/sys/vm/drop_caches |
Crear script automático:
1 | nano /root/limpiar_memocache.sh |
Copia y pega el script. Guarda:
1 2 3 4 5 | #!/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:
1 | 0 * * * * /root/limpiar_memocache.sh |
Ejecutar script de forma manual:
1 | nano /usr/local/bin/liberaram |
Copia y pega el script. Guarda:
1 2 3 4 5 6 7 | #!/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:
1 | chmod +x /usr/local/bin/liberaram |
En terminal o consola escribes lo siguiente para ejecución manual:
1 | 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.