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, PHP, Apache, entre otros, en los que nuestro sistema puede quedar inutilizado por no tener suficiente swap, así que empecemos.
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
.
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.
Ahora convertimos el archivo a tipo swap con:
mkswap /swap1
Después lo ponemos en marcha activándolo:
swapon /swap1
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.
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