En ocasiones podemos recibir alertas de uso de recursos donde nos indican que la memoria Swap o Memoria de Intercambio del servidor está al 100% de uso.
SERVICE ALERT: ce00000000000.dnssw.net
Unix Memory Nou
WARNING
Usage: real 95% (11404/11995 MB), buffer: 3 MB, cache: 302 MB, swap: 100% (1907/1907 MB)
Comúnmente esto puede pasar por dos escenarios:
danger ⚠️ Las acciones realizadas a continuación pueden ser peligrosas si no dispones de los conocimientos necesarios ⚠️
Si dispones de Monitorización Avanzada habrás recibido un correo notificándote de la alerta Unix Memory Nou.
SERVICE ALERT: ce00000000000.dnssw.net
Unix Memory Nou
WARNING
Usage: real 95% (11404/11995 MB), buffer: 3 MB, cache: 302 MB, swap: 100% (1907/1907 MB)
Para tratar la alerta deberás conectarte por consola a tu servidor. Puedes conectarte a través de la Consola de SWPanel [📃 Manual: Cómo accedo a mi Cloud usando la consola a través de SWPanel] o a través de SSH [📃 Manual: Conectarte a tu Cloud por consola mediante PuTTY].
Para vaciar la memoria Swap, deberemos volcar los datos almacenados en la memoria RAM.
Primero de todo, deberemos comprobar el estado de la memoria del servidor, utilizando el siguiente comando:
free -m
Con este, podremos ver los bytes de memoria que tienes asignados, disponibles y utilizados.
En este caso, el servidor tiene ocupados 453B y libres 1453B:
Deberemos asegurarnos que la cantidad de Swap utilizada es menor a la cantidad de RAM disponible.
En este caso, esta regla se cumple, tenemos 453B de Swap en uso y 3379B de RAM disponibles:
danger ⚠️ No realizar el siguiente paso si la regla anterior no se cumple ⚠️
Si se cumple la regla anterior, procederemos a volcar la Swap en la RAM y, de este modo, la vaciaremos. Usaremos el siguiente comando:
swapoff -a && swapon -a
Al ejecutar el comando, la consola se quedará 'inactiva' hasta que el proceso finalice:
El proceso de vaciado de la Swap puede tardar varios minutos dependiendo del estado del servidor y sus recursos.
Puedes ver el proceso de vaciado en tiempo real, abriendo otra consola y utilizando el comando:
watch -n0 free -m