Ajouter de l'espace swap à votre serveur est une excellente option pour compenser les erreurs d'insuffisance de mémoire. Linux permet aux utilisateurs d'ajouter de l'espace swap dans leur système lorsque la quantité de RAM du système est saturée. Lorsque vous créez une partition d'espace dédiée, vous permettez à votre mémoire physique de fonctionner de manière fluide sans trop vous soucier du manque d'espace disque.
Aperçu du Swap
L'espace swap sous Linux est une partie de la mémoire virtuelle utilisée lorsque la mémoire physique manque d'espace. En particulier lors de l'utilisation d'un grand programme ou d'une application nécessitant de la mémoire supplémentaire, l'espace swap est un choix idéal pour conserver temporairement les pages de mémoire inactives. La création d'un espace swap permet aux utilisateurs de stocker des données lorsque de grands programmes sont en cours d'exécution et réduit ainsi les plantages d'applications. Cela signifie que si le système a besoin de plus de ressources mémoire et que la RAM est pleine, toutes les pages inactives en mémoire sont transférées vers l'espace swap et les programmes peuvent s'exécuter sans interruption.
De quelle quantité de swap ai-je besoin ?
La quantité d'espace swap dépend de plusieurs facteurs. Ceux-ci incluent la RAM disponible, la charge imposée et la nécessité pour le système de prendre en charge la fonction d'hibernation (mise en veille sur disque). Reportez-vous au tableau ci-dessous pour vérifier l'espace swap recommandé en fonction de l'espace disponible en RAM :
|
N° |
Espace RAM disponible |
Espace swap recommandé |
|
1. |
1 Go |
1 Go |
|
2. |
2 Go |
1 Go |
|
3. |
3 Go |
2 Go |
|
4. |
4 Go |
2 Go |
|
5. |
5 Go |
2 Go |
|
6. |
6 Go |
2 Go |
|
7. |
8 Go |
3 Go |
Dans ce tutoriel, nous allons vous guider à travers les étapes d'ajout d'espace swap sur Ubuntu 20.04. Commençons !
Prérequis
Pour suivre ce tutoriel, vous aurez besoin de :
- Ubuntu installé sur votre système.
- Un compte utilisateur non-root configuré avec des privilèges sudo sur votre machine.
Étape 1 : Vérification des informations sur le swap
La taille de l'espace swap dépend de la RAM du système. Par conséquent, il est essentiel de vérifier la disponibilité de l'espace swap sur votre système avant d'en créer un. Saisissez la commande ci-dessous pour vérifier si le système a un swap configuré :
|
1 |
$ sudo swapon --show |
Si un résultat s'affiche, cela signifie qu'il y a de l'espace disponible dans votre système pour créer de l'espace swap. En revanche, l'absence de résultat indique qu'il n'y a pas assez d'espace disponible pour ajouter de l'espace swap.
Utilisez l'utilitaire free pour vérifier qu'il n'y a pas de swap actif :
|
1 |
$ free -h |
Vous verrez le résultat sous la forme d'une ligne de swap vide :
Étape 2 : Vérification de la disponibilité de la partition du disque dur
Tout comme pour la vérification de la disponibilité du système, vérifions maintenant notre utilisation actuelle du disque pour nous assurer que nous avons suffisamment d'espace. Utilisez la commande df pour vérifier la disponibilité de la partition du disque dur :
|
1 |
df -h |
Le périphérique avec / dans la colonne Mounted on est notre disque qui est 11% libre. Vous verrez le résultat :
Après avoir vérifié les exigences du système, passons à la suite et créons un fichier swap sur notre système de fichiers.
Étape 3 : Créer un fichier swap
Pour créer un fichier swap sur notre système de fichiers, attribuez un nom de fichier tel que swapfile dans le répertoire racine (/) en utilisant le programme fallocate. L'allocation de la taille du fichier dépend de vos besoins. Pour que ce tutoriel reste simple et facile à comprendre, nous créons un fichier de 1 Go et y consacrons 1 Go de RAM. Utilisez la commande sudo pour créer un fichier swap :
|
1 |
sudo fallocate -l 1G /swapfile |
Ensuite, saisissez cette commande pour vérifier l'espace réservé :
|
1 |
$ ls -lh /swapfile |
Maintenant que nous avons créé un espace swap dans notre système, activons-le à l'étape suivante.
Étape 4 : Activer le fichier swap
Une fois que nous disposons de la bonne taille, convertissons-la en espace swap. Pour des raisons de sécurité, il est crucial de rendre notre fichier accessible aux utilisateurs root et d'en empêcher l'accès aux utilisateurs normaux. Nous ajouterons des restrictions afin que seuls les utilisateurs disposant des privilèges root puissent voir le fichier et lire son contenu. Utilisez la commande root suivante pour rendre le fichier accessible uniquement aux utilisateurs root :
|
1 |
sudo chmod 600 /swapfile |
Ensuite, utilisez la commande ls pour vérifier les modifications :
|
1 |
$ ls -lh /swapfile |
Comme vous pouvez le voir, seul l'utilisateur root a les drapeaux de lecture et d'écriture activés :
Après cela, marquez le fichier comme espace swap :
|
1 |
sudo mkswap /swapfile |
Vous verrez le résultat :
Après cela, activez le fichier swap et autorisez notre système à commencer à l'utiliser :
|
1 |
sudo swapon /swapfile |
Ensuite, vérifiez la disponibilité du swap :
|
1 |
$ sudo swapon --show |
Vous verrez le résultat suivant :
Comme nous l’avons fait à l’Étape 1, nous allons vérifier à nouveau l’espace de l’utilitaire free :
|
1 |
free -h |
Vous verrez le résultat suivant :
Notre swap a été configuré avec succès et notre système d'exploitation commencera à l'utiliser si nécessaire. À l'étape suivante, nous allons rendre le fichier swap permanent.
Étape 5 : Rendre le fichier swap permanent
Par défaut, le serveur ne conservera pas automatiquement les paramètres de swap lors du redémarrage. Pour modifier les paramètres par défaut et jouer la carte de la sécurité, nous allons ajouter le fichier swap à notre fichier /etc/fstab. Utilisez la commande sudo pour sauvegarder le fichier /etc/fstab :
|
1 |
sudo cp /etc/fstab /etc/fstab.bak |
Ensuite, ajoutez les informations du fichier swap à la fin de votre fichier /etc/fstab en tapant :
|
1 |
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab |
Après cela, passons en revue certains paramètres et apportons des modifications afin de pouvoir ajuster notre espace swap.
Étape 6 : Modification des paramètres du swap
Dans cette étape, nous allons configurer les paramètres et apporter quelques modifications. Ajustons la propriété swappiness et modifions la pression du cache.
-
Ajuster la propriété Swappiness
Le paramètre swappiness est un paramètre de noyau ajustable. Il modifie l’équilibre entre la mise en swap de la mémoire d’exécution et gère l’échange de données entre la RAM et l’espace swap. Cette valeur paramétrique est exprimée en pourcentage, allant de 0 à 100.
La valeur vm.swappiness a une influence directe sur le comportement de la swappiness du système. Plus la valeur vm.swappiness est élevée, plus le système utilisera le swap et vice-versa. Si la valeur est proche de zéro, le noyau ne transférera pas de données vers le swap, ce qui peut entraîner une baisse des performances. Permettre à votre système de ne pas trop dépendre du swap est un excellent moyen d’améliorer ses performances et d’obtenir une réactivité robuste.
Alternativement, une valeur vm.swappiness plus proche de 100 tentera de placer plus de données dans le swap et moins dans la mémoire physique. Contrairement à une valeur de vm.swappiness faible à moyenne, un swap système élevé a des effets très indésirables lorsque de grandes quantités de données sont activement échangées entre la RAM et le swap.
Vérifiez la valeur actuelle de swappiness en tapant :
|
1 |
cat /proc/sys/vm/swappiness |
Vous verrez l’affichage suivant :
Vous pouvez également définir la swappiness de votre choix à l’aide de la commande sysctl. Définissons la valeur de swappiness sur 15 en tapant :
|
1 |
sudo sysctl vm.swappiness = 15 |
Vous verrez le résultat suivant :
Jusqu’à ce que le système soit redémarré, les paramètres resteront en l’état. Ajoutez la ligne à notre fichier /etc/sysctl.conf pour rendre la valeur automatique au redémarrage :
|
1 |
sudo nano /etc/sysctl.conf |
Vous pouvez ajouter le code suivant tout en bas :
|
1 |
Vm.swappiness = 15 |
Ensuite, sauvegardez et fermez le fichier.
-
Ajuster la pression du cache
Ensuite, nous allons modifier vfs_cache_pressure qui prendra soin des informations inode et dentry par rapport aux autres données. Ces vfs_cache_pressure paramètres contrôlent également la tendance du noyau à récupérer la mémoire utilisée pour la mise en cache du répertoire. Naviguez à nouveau dans le système de fichiers proc pour vérifier la valeur actuelle :
|
1 |
cat /proc/sys/vm/vfs_cache_pressure |
Vous verrez le résultat suivant :
Comme la configuration est déjà faite, notre système éliminera les informations d’inode du cache. Définissons le sysctl vm.vfs_cache_pressure sur un paramètre plus stable comme ceci :
|
1 |
sudo sysctl vm.vfs_cache_pressure = 60 |
Vous verrez le résultat suivant :
De la même manière que pour notre paramètre de swappiness, nous pouvons également modifier la configuration ici :
|
1 |
sudo nano /etc/sysctl.conf |
Tout en bas, insérez une ligne indiquant la nouvelle valeur que vous avez créée :
|
1 |
Vm.vfs_cache_pressure = 60 |
Enfin, sauvegardez et fermez le fichier.
Conclusion
Vous pouvez ajouter de l'espace swap sous forme de partition swap dédiée, de fichier swap ou d'une combinaison des deux. Vous pouvez créer de l'espace swap et tirer parti de ses avantages pour exécuter des applications de manière fluide sans trop vous soucier des avertissements de manque de mémoire. Bien que la création d'un espace swap soit un avantage supplémentaire dans les systèmes ayant une mémoire limitée, elle ne doit pas être considérée comme une alternative à plus de mémoire RAM. N'oubliez pas que l'espace swap est situé sur un disque dur, vous pouvez donc rencontrer un temps d'accès légèrement plus long par rapport à la mémoire physique.
Voici d'autres tutoriels sur notre blog qui vous aideront à démarrer avec vos serveurs Ubuntu :
- Configuration d'un montage NFS sur Ubuntu 20.04
- Installation de Nginx sur Ubuntu 18.04
- Configuration d'un pare-feu avec UFW sur Ubuntu 18.04
Bonne informatique !










Commentaires
Aucun commentaire pour l'instant. Soyez le premier.