Salut à toi la moule,
Dernièrement, j'ai eu à me pencher sur le SWAP. Rapidement, j'en suis venu à me demander: "Mais qu'est ce qui peut bien remplir le SWAP comme ça, d'un coup, avec un Go données. Quelles sont-elles d'ailleurs et sous quelle forme sont elles stockées dans le SWAP ?".
J'ai pas vraiment trouvé de réponse convaincante (plutôt des trucs comme ça). Sans grand intérêt donc dans l'ensemble.
Et vous, vous en savez plus, ou vous auriez des trucs et astuces à partager à ce sujet ?
# La swap n'est qu'une extension de la RAM
Posté par Renault (site web personnel) . Évalué à 7 (+4/-0).
La swap ne contient rien de plus que ce que tu retrouves dans ta RAM quand celle-ci est trop pleine.
C'est du coup plus lent que l'accès à la RAM (même via zram) en particulier s'il y a beaucoup d'allers-retours à faire entre RAM et swap.
Car pour améliorer les performances, le noyau met en swap les pages de données accédées les plus vieilles car à priori pas trop utiliser. Cela peut être souvent une partie du binaire d'un programme qui n'est pas exploité, un bout de fichier pas relu, etc.
Pour améliorer les performances, le noyau peut également mettre en swap des données réellement allouées pour garder un peu plus de cache de fichiers car à priori ces fichiers seront probablement accédés dans le futur proche.
Mais donc dans le contexte d'un OOM avec un swap qui se rempli, il faut identifier le ou les processus qui consomment cette RAM car la swap n'est rien de plus qu'une barrette de RAM virtuelle et lente.
[^] # Re: La swap n'est qu'une extension de la RAM
Posté par Krunch (site web personnel) . Évalué à 5 (+3/-0).
C'est un peu plus compliqué que ça mais il est probable que les subtilités n'importent guère.
Malheureusement, la dernière fois que j'ai cherché, les informations techniques au sujet de la gestion de la mémoire sous Linux étaient assez fragmentées et il y a plein de trucs plus ou moins faux qui circulent. Il y a linuxatemyram.com qui donne un explication un peu plus détaillée mais qui reste très simplifié.
En pratique on peut examiner comment la mémoire est utilisée, y compris la swap avec un sysrq-m. Cette information est aussi normalement affichée lors d'un OOM. Malheureusement dans la demande originale le message d'OOM est tronqué donc c'est compliqué de comprendre le problème.
En particulier, il est possible que l'OOM-killer se déclenche même lorsqu'il reste de la mémoire disponible.
Il y a aussi plein de choses à dire sur la swapiness et les cgroups notamment. Ça dépend un peu de ce qu'on cherche. La documentation de /proc/sys/vm/ donne déjà quelques indices et pistes (cf man proc).
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
[^] # Re: La swap n'est qu'une extension de la RAM
Posté par Adrien Dorsaz (site web personnel, Mastodon) . Évalué à 7 (+5/-0).
Dans le sens de ces explications, Chris Down a écrit un article pourquoi le swap est encore utile aujourd'hui. Pour défendre l'importance de son utilisation, il y explique son utilisation possible par le noyau et ce qu'il contient.
[^] # Re: La swap n'est qu'une extension de la RAM
Posté par Voltairine . Évalué à 7 (+5/-0). Dernière modification le 04 octobre 2025 à 09:09.
Merci. C'est un très bon article sur un sujet complexe. Il est rare d'avoir des explications correctes sur ce sujet complexe, notamment sur la nécessité du swap et du rôle du paramètre du noyau vm.swappiness.
Exemples d'une information erronée reprise un peu partout sur le rôle de vm.swappiness :
https://www.malekal.com/augmenter-reduire-utilisation-swap-linux-swappiness/
https://doc.ubuntu-fr.org/swap (quelqu'un a quand même mis un avertissement avec une autre très bonne source)
Personnellement je déconseille tout bidouillage sur le swap et la manière dont il est géré par le système (y compris l'utilisation de swap en zram ou autres trucs du genre). Cela pourrait être contre-productif.
Si un système se met à utiliser intensivement le swap c'est qu'il manque de RAM (pour les applications utilisées) ou qu'une application à une fuite mémoire. Donc comme dit plus haut il faut commencer par identifier le problème avant de chercher un quelconque réglage palliatif.
[^] # Re: La swap n'est qu'une extension de la RAM
Posté par Renault (site web personnel) . Évalué à 4 (+1/-0).
<w Personnellement je déconseille tout bidouillage sur le swap et la manière dont il est géré par le système (y compris l'utilisation de swap en zram ou autres trucs du genre).
Les distros proposent la zram par défaut de nos jours et c'est super.
Car quand tu swapais sur un SSD ou pire un HDD tu avais rapidement un système inutilisable car les perfs étaient trop basses, le zram améliore considérablement la situation.
Tu peux aussi avec des pics de consommation de RAM que le swap peut très bien gérer et ça évite de changer de machine pour si peu.
J'ai des grosses compilations à faire, que ce soit sur mon laptop ou serveur de compilation, certaines étapes sont très gourmandes en RAM et le swap est obligatoire mais le système reste exploitable..
[^] # Re: La swap n'est qu'une extension de la RAM
Posté par Voltairine . Évalué à 2 (+0/-0).
Oui mais c'est pareil, c'est très délicat à gérer. Il faut trouver le bon compromis entre la quantité de RAM à utiliser pour cela, les performances et les usages de la machine.
C'est relativement bien foutu sur Armbian pour les mini machines de type serveur avec peu de RAM et un périphérique de stockage lent (carte SD par exemple). Sur des environnements de bureau les paramètres par défaut ne sont pas idéaux.
Tout à fait. C'est pour cela que j'ai bien précisé intensivement.
Envoyer un commentaire
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.