Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/06/2015, 10:00
Avatar de lauser
lauser
Moderator Unix/Linux
 
Fecha de Ingreso: julio-2013
Ubicación: Odessa (Ukrania)
Mensajes: 3.278
Antigüedad: 10 años, 9 meses
Puntos: 401
Información APORTE: Liberar la memoria cache

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 original
  1. sync; 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"
Código BASH:
Ver original
  1. nano /usr/local/bin/liberar
Pega este script y guarda el archivo.
Código BASH:
Ver original
  1. #!/bin/sh
  2. # Script liberador de ram
  3. sync; echo 3 > /proc/sys/vm/drop_caches ; echo "Memoria Liberada"
  4.  
  5. exit 0
Le damos permisos.
Código BASH:
Ver original
  1. chmod +x /usr/local/bin/liberar

Ya lo tenemos terminado, ahora cuando lo quieras ejecutar tan solo tienes que acceder a la consola o terminal como root y escribes...
Código BASH:
Ver original
  1. liberar
En pocos segundos hemos liberado la ram cache.
__________________
Los usuarios que te responden, lo hacen altruistamente y sin ánimo de lucro con el único fin de ayudarte. Se paciente y agradecido.
-SOLOLINUX-