shell> free
total used free shared buffers cached
Mem: 2065176 1968620 96556 0 200424 413608
Esto, a nivel general, es por que los procesos ocupan RAM y luego no la liberan completamente, sino que queda en memoria caché. Si el kernel detecta que necesita memoria, éste libera automáticamente la memoria caché y es ocupada por memoria usada.
Desde el kernel 2.6.16 existe la posibilidad de modificar este comportamiento de forma dinámica, gracias al valor de una variable escrita en el fichero /proc/sys/vm/drop_caches. Este fichero es usado por el kernel del sistema para saber el comportamiento que debe tener respecto de la memoria. Sus posibles valores son:
- 0: No se hace nada.
- 1: Libera la memoria caché.
- 2: Libera la memoria de los i-nodos y dentries.
- 3: Libera todo.
Por lo tanto, si lo que queremos es liberar la memoria caché, se deberá escribir el valor 1, tal como sigue.
shell> echo 1 > /proc/sys/vm/drop_caches
shell> free
total used free shared buffers cached
Mem: 2065176 1482876 582300 0 220 136676
No hay comentarios :
Publicar un comentario