PC avec peu de mémoire vive - zram

Hello,

je vois passer pas mal de PC avec peu de mémoire vive (je pense perso que 8GB c’est limite et 4GB c’est pas assez). Et évidement c’est un soucis rien qu’avec le web moderne, si on ouvre un peu trop d’onglets avec des appli web gourmandes ca swap. Sur un disque SSD ça va encore mais si c’est un HDD ça revient quasiment à devoir éteindre le PC de force… Je pense notamment aux PC qu’on nous amène lors des install party.

Et il se trouve qu’il existe une alternative au swap classique : zram.

L’idée est de compresser les données en mémoire. C’est apparemment plus rapide qu’un swap sur SSD et sans commune mesure avec un swap sur HDD.

Perso, j’en ai appris l’existence récemment et peu de distribution linux l’activent par défaut (c’est le cas de Fedora et Pop’Os mais ça n’est pas le cas de Mint, Ubuntu ou Debian).

Quelques docs choisies :

En version courte et pour une distrib basée sur Debian :

sudo apt install zram-tools

La config se trouve dans /etc/default/zramswap

Par défaut, c’est quelque chose comme cela :

ALGO=lz4        # Algo de compression
PERCENT=50      # Taille "virtuelle" maximum en pourcent de la RAM
PRIORITY=100    # Priorité (100 = moins que la RAM mais plus que le swap) 

On peut avoir des informations sur ce qu’il se passe avec sudo zramctl

Alors la question maintenant : quel serait la bonne configuration à appliquer dans un cas un peu général (genre un PC avec 4GB de mémoire) ?

Il semblerait qu’il y ait deux choix potables pour l’algo de compression :

  • lz4 pour privilégier la vitesse avec un rapport de compression mesuré autour de 2.63
  • zstd pour privilégier la compression avec un rapport autour de 3.37

Et la grande question c’est la taille maximum, j’ai vu beaucoup de réglage à 50% mais aussi à 100%.

Des avis ?

1 « J'aime »

Piste intéressante! Je sais que yunohost configure de la zram par défaut, @Aleks s’y connait peut-être un peu du coup. J’avoue que je regardais plus du côté des navigateurs légers et recommandation de ne pas abuser sur les onglets pour des laptops à <4G de RAM. Je trouve que 4G avec Linux Mate ça passe encore. En 2022 Chromium se comportait beaucoup mieux que Firefox avec beaucoup d’onglets sur un netbook de 4G.

Franchement le rapport avantage / inconvénient me parait très positif. Je ne sais pas pourquoi c’est pas activé par défaut sur une distrib comme Mint.

Là j’ai fait un essai sur ma machine à 8GO. J’ai pris des réglages un peu agressif (200% de la taille mémoire avec zstd)

$ more /etc/default/zramswap
ALGO=zstd
PERCENT=200
PRIORITY=100

$ sudo zramctl --output-all
NAME       DISKSIZE DATA COMPR ALGORITHM STREAMS ZERO-PAGES TOTAL MEM-LIMIT MEM-USED MIGRATED COMP-RATIO MOUNTPOINT
/dev/zram0    14,9G   4K   59B zstd            4          0   20K        0B      20K       0B     0,2000 [SWAP]

$ free
total       utilisé      libre     partagé tamp/cache   disponible
Mem:         7819904     3430376     2577200      586660     2676660     4389528
Échange:    23704824           0    23704824

$ sudo swapon -s
Nom fichier                             Type            Taille          Utilisé         Priorité
/dev/sda3                               partition       8065020         0               -2
/dev/zram0                              partition       15639804        0               100

Ci-dessus, c’est au démarrage de la machine.

Après avoir lancé tous les programmes qui me sont passé sous la souris, et ouvert pas mal d’onglet ca donne ça.


$ sudo zramctl --output-all
NAME       DISKSIZE  DATA COMPR ALGORITHM STREAMS ZERO-PAGES TOTAL MEM-LIMIT MEM-USED MIGRATED COMP-RATIO MOUNTPOINT
/dev/zram0    14,9G  5,6G  1,3G zstd            4      79753  1,3G        0B     1,3G    86,4K     4,3006 [SWAP]

$ free
total       utilisé      libre     partagé tamp/cache   disponible
Mem:         7819904     7281700      271252     1248836     1863104      538204
Échange:    23704824     6359272    17345552

$ sudo swapon -s
Nom fichier                             Type            Taille          Utilisé         Priorité
/dev/sda3                               partition       8065020         0               -2
/dev/zram0                              partition       15639804        6358472         100

Il y a un rapport de compression de 4,3 avec 5,6 GB qui ont été placé dans la mémoire compressée ! Le swap sur disque n’a pas été utilisé.

A l’usage, ça reste fluide : quelque petit accro sur la musique c’est tout.

Je comprend pas du tout cette histoire de navigateur léger : si un site web (ou une appli web) demander à gérer beaucoup de ressources (beaucoup d’images, bibliothèque Javascript, consommation mémoire des script Javascript ou wasm), je ne vois pas ce que le navigateur léger peut y faire.

Firefox et Chrome/ium et cie ont les machines virtuelles Javascript parmi les plus performantes qui existent. Si tu a une appli web qui se met à consommer beaucoup de mémoire (ou de temps de calcul) t’as pas d’autre choix que de fournir les ressources. C’est les sites web qui consomment pas le navigateur en lui même.

En plus, une des raison de la consommation mémoire est la séparation des données (et cache) entre les différents onglets pour des raisons de cybersécu. Mais on ne peut pas enlever ça sans mettre en danger l’utilisateur.

Je pense qu’il faudrait faire des tests sur une machines 4G, sur une 8 t’as pas les même contraintes donc tu verras pas les effets de bord. En survolant rapidement les forums j’ai vu que les gain était pas si évident et que c’est pour ça que Mint et Ubuntu le mettaient pas de base.

En 2022 quand j’ai testé la gestion des onglets idle était pas du tout la même entre firefox et chrome. Sur chrome la RAM ne dépendait quasiment pas du nombre d’onglets. Alors que encore aujourd’hui sur mon firefox plus j’ai d’onglets idle plus firefox utilise de la RAM. Tout ça à confirmer en 2025.

Et pour prendre un cas concret du dernier atelier HOP, la femme qui avait sa tablette windows 4Go disait qu’elle n’ouvrait qu’un onglet à la fois. Et je connais d’autres personnes qui ont déjà l’habitude de ne pas ouvrir trop d’onglets en parallèle. Donc peut-être que la solution n’est pas technologique mais d’éducation populaire.

Je suis pas sûre que le web devienne significativement plus lourd ces dernières années, surtout avec un ublock.

Perso je suis une catastrophe sur le nombre d’onglets ouverts, et ma machine 8G galère, mais je vais plutôt essayer de me contrôler :wink:

Je suis étonné de ce que tu me dit. J’ai lu pas mal de chose sur zram et j’ai vu aucun retour négatif par contre il y a beaucoup de retour positif et là je parle de personnes qui ont fait des tests documentés lors des campagne de mise à jour de distribution (en particulier Fedora et Pop’OS)

Il y a un désavantage : ça empêche l’usage de l’hibernation.

J’ai du mal à croire que Fedora ait fait les chose à la légère, c’est la distribution qui sert de base aux évolutions de RedHat. Ils utilisent zram depuis longtemps sur Fedora IoT et on commencé en 2019 à mettre une taille de zram de 50% max de la RAM avec une limite de 4GB (voir ici). Suite au succès de ce changement ils sont passé à une taille de 100% max de la RAM avec une limite de 8BG (voir ici) en 2021.

Sur Pop’Os, il faut voir qu’il y a une grosse communauté d’utilisateur de jeux vidéo. Les JV peuvent être très gourmand en ressources et les utilisateurs ont rapporté que zram leur permettait d’améliorer le nombre d’image par seconde dans le jeux et de lancer des jeux qu’ils ne pouvaient pas avant (voir ici).

Effectivement si plusieurs communautés ont fait des tests concluants ça donne envie de tenter. Moi j’étais juste tombé sur ça : https://forums.linuxmint.com/viewtopic.php?t=405544

Perso dans ce thread je voulais juste partager mon expérience liée au fait que j’ai utilisé en 2022 un netbook 4G de RAM sous Linux Mint Mate + i3wm + chromium (firefox c’était dead) pendant plusieurs mois sans trop de soucis et sans zram. D’ailleurs les tiling manager (i3wm) sont aussi une approche possible quand peu de RAM, mais là encore pas évident à proposer au commun des mortels sans boulot d’éducation populaire et de paramétrage de i3wm.

Je n’y connais rien à la zram et je trouve ça cool si tu trouves une solution pour introduire ça en install party. J’insiste juste sur le fait que j’hésiterais à proposer une config en install party tant qu’on a pas quelqu’un dans nos réseaux qui nous confirme par une utilisation sur son propre laptop 4G, voir 3G/2G que le gain est significatif. Je pense que c’est possible que la zram apporte un gain sur des machines 8G, mais pas sur des <=4G.