Tous les services opérationnels Devise EUR Aucun frais de mise en service Vous êtes à La Réunion ?
‹ Serveurs VPS et Docker

Swap Linux : mémoire, swap et swappiness

Le swap est un espace du disque que Linux utilise quand la mémoire vive se remplit : il y déplace les pages les moins utilisées. Il évite qu'un pic de consommation ne fasse arrêter une application par manque de mémoire, mais il est bien plus lent que la mémoire vive. On le vérifie avec free -h et swapon --show, on l'ajoute avec un fichier d'échange, et on règle son usage par vm.swappiness.

Par Jonathan Dewaele · publié le

Ce guide s'appuie sur les pages de manuel de free et de swapon, et sur la documentation du noyau sur vm.swappiness, relues le 15 octobre 2026. Les commandes valent pour Ubuntu 26.04 et Debian 13.

Lire la mémoire avec free

La commande free -h affiche la mémoire en unités lisibles :

free -h

Trois colonnes comptent :

ColonneCe qu'elle mesure
freela mémoire que rien n'utilise
buff/cacheles tampons et le cache des fichiers, que le noyau rend dès qu'une application en a besoin
availablel'estimation de la mémoire disponible pour lancer de nouvelles applications sans recourir au swap

C'est available qu'il faut lire. Une colonne free presque vide n'est pas un signe de manque : Linux remplit la mémoire inutilisée avec le cache des fichiers, ce qui accélère les lectures, et il la libère à la demande. La ligne Swap indique la taille du swap et la part occupée.

Vérifier le swap en place

swapon --show

La commande liste les espaces d'échange actifs, fichier ou partition, avec leur taille et leur occupation. Si elle ne renvoie rien, le serveur n'a pas de swap.

Un swap un peu occupé n'est pas un problème en soi : le noyau y range des pages qui ne servent presque jamais. Ce qui doit alerter, c'est un swap qui se remplit et se vide en permanence pendant que le serveur ralentit. La mémoire manque alors vraiment, et le remède est de réduire ce qui tourne ou d'ajouter de la mémoire.

Créer un fichier d'échange

Faites ces étapes sur un serveur qui n'a pas encore de swap, avec un compte qui a sudo. L'exemple crée un fichier de 2 Go.

  1. Créez le fichier. La page de manuel de swapon donne dd comme méthode la plus portable : sudo dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress
  2. Réservez-le à root : sudo chmod 600 /swapfile
  3. Formatez-le en espace d'échange : sudo mkswap /swapfile
  4. Activez-le : sudo swapon /swapfile
  5. Rendez-le permanent en ajoutant cette ligne à /etc/fstab : /swapfile none swap sw 0 0
  6. Vérifiez avec swapon --show et free -h.

fallocate va plus vite que dd, mais la page de manuel prévient qu'un fichier préalloué peut être pris pour un fichier à trous selon le système de fichiers, et refusé. Sur Btrfs, un fichier d'échange demande un réglage particulier : suivez dans ce cas la page de manuel.

Avant de modifier /etc/fstab, gardez une copie du fichier : une ligne mal écrite peut empêcher le serveur de démarrer normalement.

Régler vm.swappiness

vm.swappiness règle la tendance du noyau à utiliser le swap plutôt qu'à vider le cache des fichiers. D'après la documentation du noyau, la valeur va de 0 à 200 et vaut 60 par défaut. Plus elle est basse, plus le noyau considère le swap comme coûteux et le réserve aux cas où la mémoire manque vraiment.

  1. Lisez la valeur en cours : cat /proc/sys/vm/swappiness
  2. Changez-la jusqu'au prochain démarrage : sudo sysctl vm.swappiness=10
  3. Rendez-la permanente dans un fichier de /etc/sysctl.d/, par exemple /etc/sysctl.d/90-swap.conf, qui contient vm.swappiness=10, puis appliquez-le : sudo sysctl -p /etc/sysctl.d/90-swap.conf

La documentation du noyau précise que la bonne valeur dépend de la charge et s'éprouve. Sur un serveur dont le disque est bien plus lent que la mémoire, une valeur basse est le réglage courant.

Quand le swap ne suffit plus

Le swap absorbe des pointes, il ne remplace pas de la mémoire. Si available reste bas en permanence, cherchez ce qui consomme :

  • top, puis la touche M pour trier les processus par mémoire ;
  • docker stats pour voir la mémoire de chaque conteneur, si vos applications tournent dans Docker.

Une application peut se voir fixer une limite de mémoire dans son fichier Compose, pour qu'une fuite ne fasse pas tomber les autres. Si toutes les applications sont nécessaires, il faut une taille de serveur au-dessus, voir Choisir la taille de son VPS, ou déplacer une application sur un second serveur, comme dans Migrer n8n d'un serveur à l'autre.

Sur un VPS Hubspace

Le socle posé à la livraison crée un fichier /swapfile de 2 Go, inscrit dans /etc/fstab, quand le serveur n'a pas de swap et que la mémoire vue par le système (MemTotal) est inférieure à 8 000 000 kio : les tailles à 4 Go le reçoivent, et une taille vendue 8 Go peut le recevoir aussi, puisque le système voit un peu moins que la mémoire annoncée. Il règle aussi vm.swappiness à 10, dans /etc/sysctl.d/90-hubspace-swap.conf. Vérifiez ce qu'a reçu votre serveur avec swapon --show : s'il n'y a pas de swap et que vos applications en ont besoin, créez-en un avec la procédure ci-dessus. Pour libérer de la place sur le disque, voir Espace disque Linux. Les serveurs VPS détaillent la mémoire de chaque taille.

Questions fréquentes

Quelle taille de swap prévoir ?

Il n'y a pas de règle unique. Un swap de 1 à 2 Go suffit le plus souvent à absorber les pointes d'un petit serveur. Au-delà, un serveur qui s'appuie durablement sur un grand swap devient lent : mieux vaut plus de mémoire.

Peut-on se passer de swap ?

Oui, si la mémoire suffit largement. Sans swap, un manque de mémoire fait arrêter un processus par le noyau, sans période de ralentissement. Avec un petit swap, le serveur a un peu de marge pour encaisser une pointe.

Comment retirer un fichier d'échange ?

Désactivez-le avec sudo swapoff /swapfile, retirez sa ligne de /etc/fstab, puis supprimez le fichier avec sudo rm /swapfile. Vérifiez avant que la mémoire disponible suffit sans lui.

Articles liés