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.