Créer un fichier swap pour votre serveur Linux

:bulb: Pour les serveurs avec 4 Go de RAM ou moins, l’exécution de ./discourse-setup demandera et créera automatiquement un fichier d’échange (swapfile) de 2 Go.

La plupart des fournisseurs de machines virtuelles cloud ne configurent pas de fichiers d’échange dans le cadre de leur provisionnement de serveur.

En particulier, la mise à niveau de Discourse génère une forte pression sur la mémoire. Avec un fichier d’échange, au lieu de terminer aléatoirement des processus avec une erreur de manque de mémoire (out of memory), les choses ralentiront. Avoir un fichier d’échange est une police d’assurance peu coûteuse qui vous protège contre de nombreuses autres pannes liées à la charge.

Cela peut être fait à tout moment depuis la ligne de commande sur votre serveur.

Configurer un fichier d’échange de 2 Go

Nous recommandons un fichier d’échange de 2 Go pour Discourse, à moins que votre serveur ne dispose de plus de 4 Go de mémoire.

Dans le shell que vous avez ouvert sur votre droplet, faites ce qui suit :

:warning: Vous devrez être root pour une grande partie de ceci, soyez donc root ou exécutez sudo -s avant d’exécuter ces commandes ! N’oubliez pas de quitter le mode root par la suite.

  1. Créer un fichier d’échange vide

     install -o root -g root -m 0600 /dev/null /swapfile
    
  2. Allouer un fichier de 2 Go nommé ‘swapfile’

     fallocate -l 2G /swapfile
    
  3. Indiquer à linux que c’est le fichier d’échange :

     mkswap /swapfile
    
  4. L’activer

     swapon /swapfile
    
  5. L’ajouter à la table du système de fichiers pour qu’il soit présent après le redémarrage :

     echo "/swapfile       swap    swap    auto      0       0" | tee -a /etc/fstab
    
  6. Définir la swappiness à 10 pour qu’il ne soit utilisé qu’en tant que tampon d’urgence

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

L’ensemble en un seul script copiable/collable :

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 « J'aime »