Par défaut, les serveurs Vultr FreeBSD ne sont pas configurés pour inclure l'espace de swap. Si votre intention est pour une instance de cloud jetable, vous n'avez probablement pas à vous en préoccuper. Si vous avez créé un "vrai" serveur qui va rester longtemps, lisez la suite.
Même le serveur le plus ridiculement aménagé nécessite un espace d'échange. Voilà comment fonctionne le système d'exploitation. Pendant ces moments où votre application devient un peu folle et mange plus de RAM qu'elle ne le devrait, avoir un espace de swap vous donnera une chance de combattre pour reprendre le contrôle de la machine. Même en fonctionnement normal, FreeBSD est proactif en matière de gestion de la mémoire. Par exemple, les programmes de longue durée qui sont inactifs en mémoire seront échangés sur le disque pour faire de la place à des choses utiles, comme les caches du système de fichiers. L'exécution avec échange nul est une recette pour un comportement imprévisible, et personne qui exécute un serveur ne veut ça!
Confirmer le statut du swap
Avant de faire quoi que ce soit, assurons-nous que nous n'avons vraiment aucun échange.
swapinfo
ne devrait rien retourner. Ainsi:
vultr [~]# swapinfo
Device 1K-blocks Used Avail Capacity
vultr [~]#
Si en effet il est vide, continuons et faisons-nous un fichier d'échange. Mais d'abord ...
Combien de swap est nécessaire?
Les anciennes règles d'or (1x RAM, 2x RAM, 0,5x RAM, etc.) ne s'appliquent pas vraiment de nos jours. Si votre serveur dispose de 16 Go de mémoire, vous n'avez certainement pas besoin de gaspiller 32 Go de votre précieux espace disque sur un fichier d'échange. Cela dit, si vous avez activé les vidages sur incident, selon la façon dont il est configuré, un échange égal à votre mémoire peut être nécessaire pour que cela fonctionne.
La taille du fichier d'échange dépend donc de vous. La bonne nouvelle est que vous pouvez toujours le changer plus tard, et avec un stockage soutenu par SSD, vous n'avez pas à vous soucier trop de l'endroit où il se retrouve sur votre disque. Quoi qu'il en soit, passons à ...
Création et utilisation d'un fichier d'échange
Nous allons créer un fichier d'échange de 512 mégasites situé à l'adresse /usr/swap0
. N'hésitez pas à changer tout cela si cela ne fonctionne pas pour vous. Par exemple, si vous voulez 1 gig de swap, changez le 512 en 1024, et ainsi de suite. Si vous décidez de modifier le nom de fichier, assurez-vous de modifier les deux références.
Copiez soigneusement les éléments suivants, exécutez-les en tant que root, et tout sera prêt:
dd if=/dev/zero of=/usr/swap0 bs=1m count=512
chmod 0600 /usr/swap0
echo "md99 none swap sw,file=/usr/swap0,late 0 0" >> /etc/fstab
swapon -aL
Confirmez que cela a fonctionné:
vultr [~]# swapinfo
Device 1K-blocks Used Avail Capacity
/dev/md99 524288 0 524288 0%
À ce stade, vous êtes prêt. L'échange est actif et continuera de fonctionner après un redémarrage.
Explication pour les curieux
La dd
commande crée le fichier réel. Après cela, nous définissons les autorisations appropriées, ajoutons une ligne à /etc/fstab
swap, puis activez-la. La commande swapon -aL
indique au système d'exploitation d'activer toutes les partitions / fichiers d'échange dans fstab, y compris ceux marqués comme étant en retard. En raison de la façon dont FreeBSD 10.2 démarre, le fichier d'échange doit être monté tard. Lorsque le système d'exploitation démarre normalement, votre échange sera activé pendant l'étape de "montage tardif des systèmes de fichiers".