Liberación de memoria

Daniel Eugenin M. -

Cuando tenemos una situación en que el servidor tiene mucha "memoria utilizada", sin embargo están prácticamente todas las aplicaciones abajo, y el kernel no ha liberado esta memoria.

 

Nota 1: esto es aplicable a un kernel sobre la versión 2.6.16

Nota 2: antes de ejecutar este comando, realice primero un "sync" para asegurar que todos los objetos en caché sean liberados

Nota 3: esto es una operación no-destructiva, los objetos "sucios" (dirty) no son liberables

 

 

Por ejemplo:

 Captura_de_pantalla_2012-07-12_a_la_s__10.20.37.png

Simplemente realizamos:

# sync
# echo 3 > /proc/sys/vm/drop_caches
# echo 0 > /proc/sys/vm/drop_caches 

 

Y el sistema quedará:

 Captura_de_pantalla_2012-07-12_a_la_s__10.20.48.png

 

Significados

echo 0 > /proc/sys/vm/drop_caches 

Estado normal (no libera nada)

echo 1 > /proc/sys/vm/drop_caches 

Libera los pagecache

echo 2 > /proc/sys/vm/drop_caches 

Libera dentries e inodos

echo 3 > /proc/sys/vm/drop_caches 

Libera pagecache, dentries e inodos (Libera Todo)

 

Donde:

pagecache: Memoria caché de la paginación.
dentries: (Directory Entries) Representa la relación de forma estructurada que existe entre directorios-archivos.
inodes: Son nodos índice de archivos y directorios que usa el Sistema de Archivos para administrar las actividades posibles de dichos archivos y directorios guardados en disco o memoria. Contiene la metadata de los archivos y directorios: permisos, tamaño, propietario, última fecha de acceso, creación, modificación, etc…

 

Referencias:

http://www.commandlinefu.com/commands/view/2888/release-memory-used-by-the-linux-kernel-on-caches

http://www.kernel.org/doc/Documentation/sysctl/vm.txt

http://cyb3rpunk.wordpress.com/2011/04/28/liberar-memoria-en-gnulinux/

 

¿Tiene más preguntas? Enviar una solicitud

2 Comentarios

  • 0
    Avatar
    Mauricio Coloma

    Consulta, luego de realizar esta operación, se debe volver al estado 0 ?

    es decir aplicar :

    echo 0 > /proc/sys/vm/drop_caches
    Ya que de lo contrario el sistema queda por defecto con el valor 3.  Agradecido de tu respuesta.

  • 0
    Avatar
    Daniel Eugenin M.

    Así es, se debe volver al estado 0 para que vuelva a utilizar cache el sistema. 
    Gracias por el comentario, modificaremos este tutorial agregando este comentario.

Inicie sesión para dejar un comentario.
Tecnología de Zendesk