ZRAM sur la framboise

Vous avez réalisé ou vous voulez réaliser un truc impensable avec votre Raspberry Pi ? Cet endroit est pour vous...

Modérateur : Francois

Répondre
piper
Raspinaute
Messages : 645
Enregistré le : sam. 5 juin 2021 18:57

ZRAM sur la framboise

Message par piper » jeu. 24 juin 2021 10:19

Bonjour,

Vous connaissez ZRAM ?
Peut-être pas..... mais vous connaissez le concept du swap et cette fameuse partition qu'on désactive pour que nos SDCCARD durent plus longtemps.

Avec la démocratisation des disques durs SSD, les développeurs de Linux ont compris que l'utilisation du SWAP sur disque n'est pas une bonne chose pour la durée de vie de ce type de disque.
Ils ont aussi constaté qu'échanger des données entre la RAM et le disque dur (même SSD) prend bien plus de temps que de compresser / décompresser des données échangées entre 2 zones de la RAM.
Du coup, ils ont mis le swap non plus sur une partition sur le disque mais en RAM ! les données étant compressées !
Voici ce que cela donne sur un PC portable ayant 32Go de RAM : 8Go de swap en mémoire occupant : peau de zob en RAM au lieu de 1Gb sur disque.
Ce PC gagne 30 secondes au boot depuis l'installation de ZRAM par rapport à la version avec swap en disque.

Code : Tout sélectionner

[root@fc34]# cat /proc/swaps
Filename                                Type            Size            Used            Priority
/dev/zram0                              partition       8388604         0               100
ZRAM est mis en place par défaut dès l'installation depuis Fedora 33 (on en est à la 34) et on retrouve ZRAM disponible sur la dernière Ubuntu (des paquets Debian existent)

Alors je me pose la question de l'intérêt sur les Framboises :
Aucun pour un usage domotique (putty et 2/3 petits services en python sur un Pi zéro consomment quedal en ressources)

Mais sur un Pi3 ou Pi4 destiné à un usage bureautique (ou gros serveur multimédia de streaming) ça peut-être très intéressant (Emby par exemple est très consommateur de RAM lorsqu'il met à jour une grosse base de données de fichiers multimédias, il met à plat mes 4Gb de RAM de mon pi4 et ne s'en sort que depuis que je lui ai alloué 1Gb de swap en plus sur la SDCARD

Avant que je ne tente l'aventure Est-ce que quelqu'un a essayé d'utiliser ZRAM en swap au lieu de la partition classique ?
3 Pi4 : Emby / Samba , Librelec, Android TV
3 Pi3 : Hifiberry /OSMC, Games station, Samba / VPN / HotSpot Wifi
2 Pi2 : RFID, radio reveil (PiReveil)
1 Pi0 : traker GPS et acquisitions
1 Pi0 2W : tests divers
5 Arduinos dont 4 nanos et 1 Mega
1 ESP32

dyox
Raspinaute
Messages : 969
Enregistré le : dim. 28 déc. 2014 15:28
Localisation : Le long de la côte, au dessus du pays des bigoudennes, aïe

Re: ZRAM sur la framboise

Message par dyox » jeu. 24 juin 2021 13:49

Salut piper,
Avant que je ne tente l'aventure Est-ce que quelqu'un a essayé d'utiliser ZRAM en swap au lieu de la partition classique ?
Oui, sur ma Linux Mint et avec un tmps de /tmp.
Par contre j'utilise zram-config

Lorsque je m'intéressais au truc, je me suis créé un script pour comparer le support (sd, dd, ssd, nvme..) avec la ram (tmpfs). Hé bien ça roxxxxe !!
D'autant plus si les données sont en cache.
viewtopic.php?f=44&t=6075
Modifié en dernier par dyox le mar. 20 juil. 2021 16:13, modifié 1 fois.

piper
Raspinaute
Messages : 645
Enregistré le : sam. 5 juin 2021 18:57

Re: ZRAM sur la framboise

Message par piper » jeu. 24 juin 2021 19:43

OK Merci
Du coup j'ai tenté le truc sur mon Pi4 2Gb qui nécessite 512Mo de swap (Emby : gros serveur DLNA entre autre, avec 256Mb, Emby fige au 1er scan de la médiathèque (pour mise à jour d ela base de données) qui fait.... presque e 3 TB
Ca s'est fait en 4 lignes de code avec zram-tools (il calcule et décide de tout , évidement c'est personnalisable après coup)
Il a décidé qu'il me fallait 256Mb de swap
J'ai forcé le scan complet de la médiathèque (analyse de tous les fichiers, interrogation par internet de ImDB pour récupérer les infos sur chaque titre, chaque film et chaque épisode de chaque série) , tout en écoutant un album de Roxette (<3) streamé par le Pi4 et s'est passé, sans figer, sous coupure du streaming et même plus rapidement qu'avant..... moment d'interrogation quand la Free Ram tombe sous les 100Mb et que le swap commence à être consommé.
Emby fait cela en multi-thread mais visiblement il lance beaucoup plus de threads qu'un Raspberry ne devrait avoir à en gérer et ce, depuis une mise à jour d'il y a quelques mois.

Voilà ce que j'ai fait (j'ai un noyau très récent : 5.10.17 qui sait déjà gérer la ZRAM, pour les version 4.x, ça ne fonctionnera surement pas)
Pour voir la définition du swap actuel : on voit que c'est 100Mb (dans mon cas 512Mb) sur la carte SD

Code : Tout sélectionner

 sudo cat /proc/swaps
Installation de zram-tools

Code : Tout sélectionner

sudo  apt-get install zram-tools
Désactivation du swap classique

Code : Tout sélectionner

sudo systemctl  stop dphys-swapfile && sudo systemctl  disable dphys-swapfile
Un reboot et pour voir si zram tourne et est actif

Code : Tout sélectionner

sudo systemctl status zramswap.service
Et pour voir le résultat final :

Code : Tout sélectionner

 sudo cat /proc/swaps
et

Code : Tout sélectionner

sudo top
3 Pi4 : Emby / Samba , Librelec, Android TV
3 Pi3 : Hifiberry /OSMC, Games station, Samba / VPN / HotSpot Wifi
2 Pi2 : RFID, radio reveil (PiReveil)
1 Pi0 : traker GPS et acquisitions
1 Pi0 2W : tests divers
5 Arduinos dont 4 nanos et 1 Mega
1 ESP32

destroyedlolo
Raspinaute
Messages : 1585
Enregistré le : dim. 10 mai 2015 18:44
Localisation : Dans la campagne à côté d'Annecy
Contact :

Re: ZRAM sur la framboise

Message par destroyedlolo » jeu. 24 juin 2021 21:43

Ca a aussi un gros interet sur certains répertoires de /var (genre /var/log, /var/tmp, ... ).
Ok, on perd tous au reboot, mais après tout, ce n'est pas windows : c'est quand meme rare qu'il plante ou qu'il reboote.
  • BananaPI : Gentoo, disque SATA de 2 To
  • Domotique : 1-wire, TéléInfo, Tablette passée sous Gentoo, ESP8266
  • Multimedia par DNLA
  • Et pleins d'idées ... et bien sûr, pas assez de temps.
Un descriptif de ma domotique 100% fait maison.

destroyedlolo
Raspinaute
Messages : 1585
Enregistré le : dim. 10 mai 2015 18:44
Localisation : Dans la campagne à côté d'Annecy
Contact :

Re: ZRAM sur la framboise

Message par destroyedlolo » lun. 8 nov. 2021 12:11

Les grands esprits se rencontrent car c'est ce que j'ai fais vendredi :D
Un de mes BananaPI est sous Armbian et tout est déja en zram donc j'ai eu l'idée de voir ce que ca fait sur mon PC.
Après quand même pas mal de recherches car il y a plusieurs solutions.

En résumé :
  • ZRam est utile sur les machines n'ayant qu'une SD comme média donc ou normalement, il ne faut pas swapper. C'est le cas du dit BananaPI
  • sur les machines qui peuvent swapper, on peut installer ZSwap qui permet d'avoir un "cache compressé de la swap en RAM". Même principe que ZRam sauf qu'il reste la possibilité de swapper sur disque lorsque le cache est rempli. Idéal pour les SSD car on limite les écritures sur la swap mais on garde la possibilité de déborder dessus si nécessaire.
Concernant les autres filesystem :
  • plus de tmpfs remplacé par un volume ZRam (/tmp par exemple)
  • idem pour /var/tmp : mais c'est parce que je suis sous Gentoo qui l'utilise (et prend beaucoup de place) lors des mise à jour. En théorie sur un autre Unix, /var/tmp est sensé contenir "des données temporairement susceptibles d'être conservées entre les reboot" (sic) Donc a voir.
  • si /home est sur un SD, on gagnera a le mettre aussi en RAM (et mettre les fichiers devant être conservés ailleurs)
Enfin, les modules de compressions peuvent se configurer à la volée mais ce sont des modules Kernel. Et ZSwap comme ZRam demande que certains modules soient chargés. Du coup, il faut s'assurer que le kernel ait été bien configuré dans la distrib que vous utisez (je n'ai pas ce pb sous Gentoo vu que le compile moi-même).

A+
  • BananaPI : Gentoo, disque SATA de 2 To
  • Domotique : 1-wire, TéléInfo, Tablette passée sous Gentoo, ESP8266
  • Multimedia par DNLA
  • Et pleins d'idées ... et bien sûr, pas assez de temps.
Un descriptif de ma domotique 100% fait maison.

Répondre

Retourner vers « Utilisateurs avancés »