Buscar este blog

miércoles, 13 de julio de 2016

Liberación de memoria

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.


  • esto es aplicable a un kernel sobre la versión 2.6.16



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



  • esto es una operación no-destructiva, los objetos "sucios" (dirty) no son liberables (al igual como trabaja ORACLE con sus componentes de memoria)



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…






No hay comentarios.: