A partir del kernel 2.6.16 se introdujo una nueva función en el mismo que automatiza la liberación de la cache, pero algunas veces cuando hacemos un uso intensivo de la ram y nuestro sistema empieza a ralentizar, la función de limpieza se ejecuta... pero ya es tarde y lo que se produce es un bloqueo del sistema por colapso que puede durar varios segundos.
Entonces, la pregunta sería:
Puedo limpiarla yo antes de que esto se produzca? - Si puedes.
Forma manual, en terminal root:
Código BASH:
Ver originalsync; echo 3 > /proc/sys/vm/drop_caches
Observa las imágenes tomadas del comando free o free -m, como más te guste:
Antes de liberar
Después de liberar
Como veis la diferencia es considerable y el rendimiento tambien. Pero vamos a hacerlo bien, que así con el comando digamos que no queda bonito.
Vamos a crear un simple script bash que quedara más elegante.
Empezamos con un bash para ejecutar manualmente (si estás trabajando sobre la maquina es la aconsejable):
Crea el archivo "liberar"
Pega este script y guarda el archivo.
Código BASH:
Ver original#!/bin/sh
# Script liberador de ram
sync; echo 3 > /proc/sys/vm/drop_caches ; echo "Memoria Liberada"
exit 0
Le damos permisos.
Ya lo tenemos terminado, ahora cuando lo quieras ejecutar tan solo tienes que acceder a la consola o terminal como root y escribes...
En pocos segundos hemos liberado la ram cache.