Linux. Crear un archivo Swap

Linux. Crear un archivo Swap

En este artículo, aprenderás a crear un archivo de intercambio o ‘swap file’ en un sistema Linux, específicamente en Ubuntu 20.04. Esta necesidad surgió al intentar compilar el código fuente de un Large Language Model (LLM), y encontrar que incluso con 64 GB de RAM y un archivo de intercambio de 70 GB, la capacidad no era suficiente.

El código fuente que quise compilar es el siguiente: https://github.com/mlc-ai/mlc-llm/blob/main/android/README.md. Básicamente y a modo resumen es un LLM que se ejecutaría en modo local para Android, (cosa que no he podido comprobar por las razones de esta publicación). Claro que si no quieres hacer la compilacion puedes siempre bajar el APK aqui.

Crear un SwapFile Linux

Para crear un swapfile los pasos son los siguientes:

sudo fallocate -l 100G /ruta/del/archivo/swapfile
  • fallocate: es el comando que se usara para asignar el espacio en disco para el archivo swapfile
    • -l 100G: basicamente le estamos diciendo que nos cree un archivo de 100 GB
    • y al final la ruta del archivo donde estará almacenado.
sudo chmod 600 /ruta/del/archivo/swapfile

Con el comando anterior le daremos permisos al archivo, le da al propietario del archivo el permiso de lectura y escritura, pero no permite que otros usuarios lo vean o modifiquen.

Con el siguiente comando vamos habilitar el archivo para usarlo ahora si como intercambio.

sudo mkswap /ruta/del/archivo/swapfile

Ahora lo único que nos falta hacer es activar el archivo swap para que comience a usarse en el sistema.

sudo swapon /ruta/del/archivo/swapfile

Y con esto ya tendrías un archivo swap funcionando en tu sistema, si necesitas verificar que efectivamente esta en uso necesitaras este comando:

sudo swapon --show

Y eso seria todo, pero tenemos un único inconveniente y es que si reiniciamos el sistema el archivo dejara de usarse como swap. Para guardar la configuración de manera permanente hay que editar un archivo.

sudo nano /etc/fstab 

Y agregar la siguiente linea al final del mismo.

/ruta/del/archivo/swapfile none swap sw 0 0

Ahora si tendrás un archivo de intercambio en linux en caso de que lo necesites como es mi caso.