Je passe swappiness de la valeur par défaut 60 à 10 : le swap est utilisé uniquement quand la mémoire est utilisée à plus de 90% (100-10) contre 40% par défaut (100-60). Cela diminue fortement l’utilisation du swap. Je n'ai mis que 1 Go de partition de swap sur le SSD.
Swapiness ne détermine pas le pourcentage de RAM au-delà duquel tu risques de swapper : c'est juste une pondération pour favoriser la mémoire des process (anonymous) par rapport aux autres types de pages (pages mappées et cache filesystem).
Il faut donc plus le voir comme une probabilité de voir ses pages anonymes swappés.
Schématiquement, car ça semble en réalité plus compliqué :
Avec swapiness = 100 : tu auras en probabilité autant de pages anonymes que de pages mappées/du cache évincées de la RAM
Avec swapiness = 1 : tu auras 100 fois mois de pages anonymes que de pages mappées/du cache évincées de la RAM
Avec swapiness = 0 : tu n'auras plus de pages anonymes évincées de la RAM, (sauf si un seuil très bas de RAM disponible est atteint)
Voici un exemple de serveur avec un /proc/sys/vm/swappiness de 10
Je suis étonné de la proportion que peut prendre le swap alors que peu de ram est utilisée (max de 395 Mo utilisé) - il y a 15 Go de cache, dont 7 Go utilisé pour un ramdisque :
C'est normal si ton cache filesystem met une grosse pression sur le VMM et que des process sont plutôt inactifs : même si tu as un swapiness à 10 , la probabilité de swapper est non nulle (juste réduite de 1/10) et donc le kernel aura tendance à pousser en swap les pages des process inactifs, plus que des pages filesystems qui sont plus actives.