Swap ou ZSwap ?

a marqué ce sujet comme résolu.

Bonjour ! Je possède un SSD nvme de 500 Go sur lequel est installé Fedora, et un second SSD 2.5" de 500 Go également, pour le backup.

Ma quastion est la suivante : dois-je allouer une partition pour le swap lors de l’installation ? Dans l’idéal combien de go ? Ou bien suffit-il d’utiliser zswap ?

Merci !

Je suis passé à zram, qui est un peu comme zswap, il y a deux ans je crois, et je n’ai jamais eu de soucis (mais: j’ai beaucoup de RAM). Fedora l’utilise par défaut depuis quelques versiones. Je recommande, mais c’est en supposant que tu as assez de RAM.

Le swap traditionnel a deux problèmes:

  1. tu te réserves de l’espace disque que tu ne peux pas utiliser pour autre chose, c’est dommage
  2. quand ta machine se met à swapper, c’est beaucoup beaucoup plus lent que d’écrire en RAM, au point qu’elle peut devenir inutilisable; c’est parfois limite mieux pour l’expérience utilisateur de ne pas avoir de swap et de laisser le noyau tuer un processus tout de suite, que d’avoir un gros freeze pendant une minute. (Un SSD est nettement plus rapide qu’un vieux disque dur, mais la ram reste 10x-100x plus rapide.)

Je trouve que zram est un meilleur compromis sur ces deux points que le fait d’avoir du swap. Aucun espace disque occupé, et un impact en performance bien moindre que de swapper sur le disque. Mais ça limite la taille totale de la RAM+swap (par rapport à avoir un swap), donc en théorie c’est moins bien sur des usages qui demandent beaucoup, beaucoup plus de RAM que ce que tu as réellement. (Mais de toute façon ces usages iraient super lentement, donc ce n’est pas une bonne idée de les faire sur cette machine à la base.)

Je trouve que zram est un meilleur compromis sur ces deux points que le fait d’avoir du swap. Aucun espace disque occupé, et un impact en performance bien moindre que de swapper sur le disque.

gasche

C’est ce que conseillerais aussi à l’OP, mais à condition bien-sûr qu’il ait assez de RAM en premier lieu (comme tu l’as précisé).

J’ai 32 GB de RAM dont 8 GB en zswap (donc pas sur le disque), et absolument rien en disque. Sur un usage soutenu, c’est parfaitement acceptable et en général la zswap sert à fourrer les pages pas très importantes quand je démarre des VM. Avec mon laptop de 4 GB de RAM, ça ne serait pas du tout viable, mais il a quand même les deux : zswap + swap classique. Une priorisation (sûrement configurable) est faite sur la zswap avant d’entamer la swap.

C’est effectivement Fedora qui a choisi ces valeurs par défaut (y compris le ratio 32/8). Mais c’est bien entendu reconfigurable.

Le swap est utile pour l’hibernation, non ?

Moté

Bien vu. Pour l’hibernation qui ne garde pas la machine sous tension, il faut en effet que ce soit le cas (si la RAM n’est plus alimentée, on perd son état). Mais il y a des modes ACPI "Suspend to RAM" où la machine peut maintenir la RAM sous tension pour ne pas perdre l’état. Cela dit, on n’appellerait plus ça de l’hibernation stricto sensu, je suppose.

À voir selon les besoins de l’OP.

+0 -0

Je partirais juste sur de la zswap (sans swap sur disque classique). On ne connaît pas tes usages, après.

sgble

Comme indiqué sur mon précedent topic, c’est du dev web, création d’un site e-commerce & dashboard admin avec Django, PostgreSQL, Redis et Svelte. J’utiliserai Docker CI/CD également. :)

+0 -0

Je vois qu’il y a eu plusieurs cafouillages entre zram et zswap…

zram crée un périphérique en mémoire (compressé), qui peut être utilisé comme on veut. Le cas habituel, et celui dont il est question ici, est de le formater en swap, et de s’en servir comme swap classique. Effectivement une bonne solution quand on beaucoup de RAM et pas besoin ou envie d’avoir du swap disque. Le système ne fera aucune différence avec un swap classique, y collera tout ce qu’il jugera utile d’y mettre. En cas de présence de swap disque, il aura une priorité supérieure, mais une fois plein, il passera au disque sans réfléchir (par exemple si des données incompressibles sont mises en zram, on ne gagne rien).

zswap quant à lui nécessite du swap disque, et a un fonctionnement bien plus intelligent. Quand le système souhaite mettre des données en swap, zswap l’intercepte, et tente de le compresser. Si c’est efficace, c’est conservé en RAM, si on ne gagne rien la donnée non compressée est alors stockée sur le disque (ce qui permet de libérer de la RAM dans tous les cas, vu que c’est le but initial quand le système essaye de swapper). Et une fois atteint le « quota », zswap déchargera les données utilisées le moins récemment vers le swap disque (décompressées), afin de mettre les nouvelles données compressées en RAM si possible (meilleure gestion du débordement que zram, donc).

En conclusion, sans swap disque, il vaut mieux utiliser zram, avec du swap disque il vaut mieux utiliser zswap (je dirais même, systématiquement, et d’ailleurs c’est activé par défaut sur les kernels récents).

Il est inutile d’activer les deux en même temps.


Pour la question faut-il ou non du swap disque en premier lieu, c’est difficile de juger à l’avance. Ça dépend énormément des usages, et rien que dans l’exemple que tu donnes si tu devs avec un gros IDE ou avec Vim la réponse ne sera pas forcément la même. Idéalement il faut pouvoir changer cela, par exemple avec du partitionnement logique qui permet de ne pas tout attribuer d’un coup, et de choisir à quoi on attribue l’espace libre en fonction des besoins.

Une idée par exemple serait de commencer avec 2 Gio de swap disque et zswap, et de voir à l’usage : si le système rempli le swap sans remplir la RAM, alors augmenter le swap pour avoir plus de cache disque peut être intéressant si l’espace disque n’est pas un problème. J’ai ce cas sur mon PC perso.

Si au contraire le swap reste relativement vide alors que la RAM se remplit, et que le PC n’utilise le swap que s’il manque de RAM (cas de mon PC pro), alors augmenter le swap n’aurait pas d’intérêt (voire, dans les cas où tu manques de RAM, rendrais le PC difficile à utiliser en cas de manque de mémoire, comme cela a été mentionné plus tôt).

Personnellement j’ai 16 Gio de RAM, 8 Gio de swap, zswap activé, et c’est clairement utile (même si en fait, quasiment tout est dans le zswap). Mais j’ai un usage particulier.

+0 -0

Personnellement j’ai 16 Gio de RAM, 8 Gio de swap, zswap activé, et c’est clairement utile (même si en fait, quasiment tout est dans le zswap). Mais j’ai un usage particulier.

Merci pour les précisions ! J’ai adopté la même stratégie que toi et le swap est généralement vide. Je n’utilise pas de gros IDE, simplement VSCode, mais reste à voir si mes besoins techniques vont évoluer dans le futur.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte