viernes, 6 de febrero de 2015

Liberar memoria swap en Linux

Cuando los sistemas trabajan con determinados procesos, estos pueden llegar a consumir toda la RAM del sistema (puede pasar porque algunas aplicaciones no liberan esa memoria, o porque los servidores están mal dimensionados). Cuando ya no queda memoria RAM disponible, los procesos utilizan la memoria swap del sistema para satisfacer sus necesidades, aunque eso hace que se pierda rendimiento.
En el momento que acaban esos procesos, la memoria swap que han utilizado no se libera y nos quedamos con un sistema con memoria swap en uso a pesar de tener memoria RAM disponible.

Por ejemplo: 

Para solucionarlo se debe liberar la memoria swap, eso tendremos que hacerlo de forma manual, volcando la información de la memoria swap en la RAM, y luego deshabilitando (swapoff) y volviendo a habilitar (swapon) el uso de swap.

Utiliza -----> free -m 
Para mostrar el estado de la memoria actual

Utiliza -----> swapoff -a && free -m
Para apagar la memoria y mostrar los resultados

Utiliza -----> swapon -a && free -m
Para encender la memoria y mostrar los resultados

Luego quedara algo asi:


Y si hacemos un htop observamos algo asi:



NOTA: Antes de hacerlo, debemos asegurarnos que en la memoria RAM hay suficiente espacio libre como para poder volcar todos los datos que ocupan la RAM.

Si intentamos desactivar la swap en un sistema en el que no hay suficiente espacio en RAM para volcar esos datos, recibiremos este error:

# swapoff -a
swapoff: /dev/sda1: swapoff failed: Cannot allocate memory


No hay comentarios:

Publicar un comentario en la entrada