Usando un archivo como swap…

En ocasiones al estar compilando o realizando otra tarea pesada, la memoria se agota, aun teniendo memoria física ciertos procesos tiran de swap, lo que en ocasiones ocasiona un error de tipo

Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x000000065c180000, 651689984, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (malloc) failed to allocate 651689984 bytes for committing reserved memory.
# An error report file with more information is saved as:

Pues bien, esto podemos solucionarlo rápidamente añadiendo swap a la máquina, pero a veces no queremos reiniciar o no tenemos mas particiones libres para usar como swap, en estos casos podemos usar un archivo swap.

Primero creamos el archivo del tamaño requerido, en este caso es de 10G (1024 * 1024 * 10)

dd if=/dev/zero of=/swapfile1 bs=1024 count=10485760

Despues por seguridad cambiamos el propietario de dicho archivo

chown root:root /swapfile1

Nos aseguramos que solo root pueda escribirlo

chmod 0600 /swapfile1

Preparamos el archivo para que el sistema pueda usarlo como swap

mkswap /swapfile1 
Setting up swapspace version 1, size = 9666852 KiB
no label, UUID=fea577ce-d53a-4b79-9cce-fd1b15e6a77

Y finalmente activamos nuestro nuevo swap

swapon /swapfile1

Y eso es todo, sencillo 🙂

Saludos

Deja tu comentario

%d bloggers like this: