Crear un archivo de intercambio para tu servidor Linux

:bulb: Para servidores con 4 GB de RAM o menos, ejecutar ./discourse-setup solicitará y creará automáticamente un archivo de intercambio (swapfile) de 2 GB.

La mayoría de los proveedores de máquinas virtuales en la nube no configuran archivos de intercambio como parte de su aprovisionamiento de servidores.

En particular, actualizar Discourse produce mucha presión de memoria. Con un archivo de intercambio, en lugar de terminar procesos aleatoriamente con un error de falta de memoria (out of memory), las cosas se ralentizarán. Tener un archivo de intercambio es una póliza de seguro económica que lo protege de muchos otros fallos relacionados con la carga.

Esto se puede hacer en cualquier momento desde la línea de comandos de su servidor.

Configurar un archivo de intercambio de 2 GB

Recomendamos un archivo de intercambio de 2 GB para Discourse, a menos que su servidor tenga más de 4 GB de memoria.

En el shell que ha abierto a su droplet, haga lo siguiente:

:warning: Necesitará ser root para gran parte de esto, así que sea root o ejecute sudo -s antes de ejecutar estos comandos. ¡No olvide salir de root después!

  1. Crear un archivo de intercambio vacío

     install -o root -g root -m 0600 /dev/null /swapfile
    
  2. Asignar un archivo de 2 GB llamado ‘swapfile’

     fallocate -l 2G /swapfile
    
  3. Indicar a linux que este es el archivo de intercambio:

     mkswap /swapfile
    
  4. Activarlo

     swapon /swapfile
    
  5. Añadirlo a la tabla del sistema de archivos para que esté ahí después del reinicio:

     echo "/swapfile       swap    swap    auto      0       0" | tee -a /etc/fstab
    
  6. Establecer la swappiness en 10 para que solo se use como un búfer de emergencia

     sysctl -w vm.swappiness=10
     echo 'vm.swappiness = 10' > /etc/sysctl.d/30-discourse-swap.conf
    

Todo el proceso como un script único para copiar y pegar:

install -o root -g root -m 0600 /dev/null /swapfile
fallocate -l 2G /swapfile
mkswap /swapfile
swapon /swapfile
echo "/swapfile       swap    swap    auto      0       0" | tee -a /etc/fstab
sysctl -w vm.swappiness=10
echo 'vm.swappiness = 10' > /etc/sysctl.d/30-discourse-swap.conf
96 Me gusta