En Linux hay dos formas de tener swap o espacio de intercambio. La primera es con una partición creada al momento de instalar el sistema, y la segunda es con un archivo en nuestro sistema de archivos, comúnmente llamado swapfile. Un ejemplo en el que podríamos necesitar agregar swap es en el caso de los servidores o máquinas virtuales, ya que estos de forma predeterminada no tienen swap y cuando tenemos que correr alguna aplicación como Composer las cosas se complican bastante. Hay muchos escenarios de este tipo y pueden estar involucrados bases de datos, servidores web, entre otros, en los que nuestro sistema puede quedar inutilizado por no tener suficiente swap, así que empecemos.
Aumentar Swap con un archivo
Para usuarios de Ubuntu o para cualquier distribución que no permita usar root directamente tenemos que anteponer sudo en todos los comandos. Esto aplica casi para cualquier distribución, lo primero es crear un archivo lleno de ceros con el comando dd
.
sudo dd if=/dev/zero of=/swap1 bs=1024 count=1000000
La salida será similar a esta:
~$ dd if=/dev/zero of=/swap1 bs=1024 count=1000000 1000000+0 records in 1000000+0 records out 1024000000 bytes (1.0 GB, 977 MiB) copied, 1.9816 s, 517 MB/s
Este swap mide alrededor de 1 GB, para uno de 2 GB cambiamos el parámetro count a 2000000 y para uno de 4 GB lo cambiamos a 4000000. La cantidad no es exacta con respecto a los sistemas de medidas, en este caso para hacer cálculos del tamaño exacto del archivo usar el método que se encuentra en la página fuente al final de este artículo.
Por recomendación del comando que usaremos para convertir el archivo debemos darle los permisos 0600 al archivo.
sudo chmod 0600 /swap1
Ahora convertimos el archivo a tipo swap con:
sudo mkswap /swap1
Después lo ponemos en marcha activándolo:
sudo swapon /swap1
Verificación del Swap
Para verificar que el archivo swap se está usando en el sistema, ejecutamos:
free -h
Salida del comando:
total used free shared buff/cache available Mem: 1.9Gi 400Mi 82Mi 93Mi 1.5Gi 1.3Gi Swap: 2.0Gi 192Mi 1.8Gi
En la parte donde dice "Swap:" en "total" debe decir la cantidad que asignamos o incluso más. También podemos revisar con htop
y top
la cantidad de swap disponible para verificar. Lo ideal es revisar con este comando antes de agregar swap y justo después de agregar, para obtener un panorama claro sobre si nuestro sistema está usando el swap nuevo.
Swap permanente
Para que el swap se active en cada reinicio del sistema, editamos /etc/fstab
con nano
o el editor de nuestra preferencia como root y agregamos la siguiente línea haciendo referencia al archivo de swap creado anteriormente:
/swap1 swap swap defaults 0 0
Podemos crear tantos archivos como queramos, pero no hay que olvidar que ocupan espacio en disco, y si hablamos de espacio en un VPS normalmente es limitado por el hecho de que usan discos SSD. Pero al mismo tiempo es una ventaja, si tenemos la posibilidad de usar una buena porción de nuestra unidad SSD como swap, nuestro sistema nos lo agradecerá.
De esta forma, si por error estamos ejecutando composer update
y no tenemos tanta memoria RAM podemos hacer uso de swap siempre y cuando tengamos espacio en nuestro disco disponible, y lo mejor de todo sin reiniciar nuestro sistema.
Fuente: web3us.com