L’object de cet article est de comprendre le réglage du paramètre « swappiness » et son impact sur la gestion de la mémoire sous Linux :
1. Comprendre la mémoire virtuelle et le swap
-
Mémoire physique (RAM) : zone de stockage rapide, utilisée pour exécuter les programmes.
-
Mémoire virtuelle : abstraction créée par le noyau pour chaque processus, composée de pages virtuelles mappées sur la RAM ou vers un espace d’échange (swap)
Pages mémoire
La mémoire est découpée en pages (taille fixe, ex. 4 Ko), classées par type :
-
pages de code, données, stack, heap, pages liées aux fichiers, pages anonymes, partagées… .
-
Les pages peu utilisées (typiquement anonymes ou de code peu accédé) peuvent être déplacées vers le swap pour libérer de la RAM
2. Qu’est-ce que le swappiness ?
Le swappiness est un paramètre du noyau Linux qui contrôle l’agressivité du mécanisme de swap. Le swap déplace les pages mémoire inactives de la mémoire physique vers l’espace d’échange sur le disque (soit dans un fichier de swap, soit dans une partition de swap). Ce processus vise à équilibrer les données en RAM et à utiliser l’espace de swap lorsque la mémoire physique atteint ses limites.
La valeur du swappiness est un nombre compris entre 0 et 200. Des valeurs faibles indiquent un swapping léger, tandis que des valeurs élevées indiquent un swapping plus agressif. Lorsque la mémoire physique se fait rare, la valeur du swappiness guide la décision du noyau concernant le swap des pages.
Les candidats idéaux pour le swap sont les pages inactives ou peu fréquemment accessibles. Le processus libère de l’espace en RAM en priorisant les processus plus actifs.
La Relation entre Swappiness et Swap
Le paramètre swappiness affecte la manière dont le swap se produit et l’utilisation de l’espace de swap. Lorsque des processus sont échangés de la RAM, ils sont déplacés vers l’espace de swap. Cet espace est une extension de la mémoire physique et aide à libérer de l’espace en RAM.
Processus de « swap out » et « swap in »
L’espace de swap a une taille spécifique, qui détermine la quantité de données qu’un système peut échanger. Une fois que les processus en RAM ont terminé et libéré de la mémoire, les processus échangés reviennent en RAM. Le swappiness ne contrôle pas la taille de l’espace de swap, mais influence plutôt les limites et la fréquence du swapping.

En résumé :
-
C’est un paramètre du noyau Linux (
vm.swappiness) qui oriente la fréquence et l’agressivité du swap. -
Valeur entre 0 et 200 (ou 0–100 selon les sources, mais certains noyaux voient jusqu’à 200)
-
Plus la valeur est élevée, plus le noyau est “prompt” à utiliser le swap ; faible, il privilégie la RAM .
Test typique :
| Valeur | Comportement |
|---|---|
| 0 | Évite le swap autant que possible (usage quasi nul) fr.wikipedia.org |
| 1–10 | Swap minimal : recommandé si RAM suffisante (serveurs, desktop, base de données) |
| 60 | Valeur par défaut, bon compromis |
| >100 | Swap agressif, pèse équitablement pages anonymes et fichier |
Le noyau convertit swappiness en deux priorités : anon_prio = swappiness, file_prio = 200 − swappiness, régissant quel type de pages sont prioritairement swapées
3. Quel réglage choisir ?
Tout dépend des besoins (usage, RAM, type de stockage, performances souhaitées) :
-
Grandes RAM, disques SSD rapides : vous pouvez descendre entre 1–10 pour limiter le swap et garder les données en RAM
-
Systèmes avec moins de RAM ou besoin de libérer de la mémoire pour cache : valeur par défaut (60) ou plus peut être utile
-
Serveurs dédiés ou workloads intensifs (BD, ML…) : de nombreux témoignages préconisent 0–1–10 pour minimiser les ralentissements
-
💡 Conseil : testez progressivement par pas (ex. 60 → 30 → 10 → 0) et surveillez la latence, I/O disques, swap, et performance via
htop,iotop,vmstat.
4. Vérifier et ajuster la swappiness
Vérification
# Lire les paramètres du pseudo-filesystem kernel
cat /proc/sys/vm/swappiness
sysctl vm.swappiness