Important :

Le présent wiki a été migré vers wiki.archlinux.org.

Ce Wiki a été archivé. Toute contribution doit donc désormais se faire là-bas. Cette page de Wiki possède donc potentiellement des informations qui ne sont plus à jour !

Accueil wiki FR sur .org

Zram : Différence entre versions

De ArchwikiFR
(relecture, ok, ajout balise {{Note}})
m (typo :-( + Ajout liens vers page [[swap)
 
(Une révision intermédiaire par le même utilisateur non affichée)
Ligne 1 : Ligne 1 :
 
[[en:Improving_performance#Zram_or_zswap]]
 
[[en:Improving_performance#Zram_or_zswap]]
[[https://www.kernel.org/doc/Documentation/blockdev/zram.txt zram] est un «périphérique bloc» (comme une partition de disque dur) qui vit dans la RAM et où les données sont compressées avant d'être inscrites. Avec un peu d'imagination, ça permet d'augmenter la dimension de sa RAM sans acheter de barrette mémoire.
+
[https://www.kernel.org/doc/Documentation/blockdev/zram.txt zram] est un «périphérique bloc» (comme une partition de disque dur) qui vit dans la RAM et où les données sont compressées avant d'être inscrites. Avec un peu d'imagination, ça permet d'augmenter la dimension de sa RAM sans acheter de barrette mémoire.
  
 
== Démarrage rapide ==
 
== Démarrage rapide ==
Ligne 10 : Ligne 10 :
 
  swapon --priority 100 /dev/zram0
 
  swapon --priority 100 /dev/zram0
  
Voilà, on a maintenant un disque virtuel zram utilisé comme swap. Pour l'effacer :
+
Voilà, on a maintenant un disque virtuel zram utilisé comme [[swap]]. Pour l'effacer :
  
 
  swapoff /dev/zram0
 
  swapoff /dev/zram0
Ligne 43 : Ligne 43 :
 
  zrm[|        602M(4.84G)/16.0G]
 
  zrm[|        602M(4.84G)/16.0G]
  
{{Note|1=Il est fort probable que le module {{ic|zswap}} activé par défaut sur le noyau Archlinux «interfère» avec zramctl pour un usage de zram en tant que «RAM supplémentaire». Ce module permet de compresser la donnée avant de l'inscrire en swap: cette donnée est donc incompressible pour zram. On peut désactiver zswap au démarrage en ajoutant à sa cmdline: {{ic|zswap.enable=0}}}}
+
{{Note|1=Il est fort probable que le module {{ic|zswap}} activé par défaut sur le noyau Archlinux «interfère» avec zramctl pour un usage de zram en tant que «RAM supplémentaire». Ce module permet de compresser la donnée avant de l'inscrire en swap: cette donnée est donc incompressible pour zram. On peut désactiver zswap au démarrage en ajoutant à sa cmdline: {{ic|1=zswap.enable=0}}}}
  
 
== Autres usages ==
 
== Autres usages ==
  
Il reste tout à fait possible d'utiliser un périphérique zram pour y mettre un autre système de fichiers que swap.
+
Il reste tout à fait possible d'utiliser un périphérique zram pour y mettre un autre système de fichiers que [[swap]].
  
 
  modprobe zram
 
  modprobe zram

Version actuelle datée du 28 mai 2021 à 17:48

zram est un «périphérique bloc» (comme une partition de disque dur) qui vit dans la RAM et où les données sont compressées avant d'être inscrites. Avec un peu d'imagination, ça permet d'augmenter la dimension de sa RAM sans acheter de barrette mémoire.

Démarrage rapide

modprobe zram
echo lz4 > /sys/block/zram0/comp_algorithm
echo 8G > /sys/block/zram0/disksize
mkswap --label zram0 /dev/zram0
swapon --priority 100 /dev/zram0

Voilà, on a maintenant un disque virtuel zram utilisé comme swap. Pour l'effacer :

swapoff /dev/zram0
rmmod zram

Configuration permanente

Le wiki anglophone fait mention d'udev, mais le rédacteur de l'article n'a pas réussi à en faire ce qu'il souhaitait.

En revanche, le paquet zram-generator fonctionne.

Fichier: /etc/systemd/zram-generator.conf
[zram0]
# Autant d'espace zram que de RAM. Par défaut, c'est 50%
zram-fraction=1.0
# Pas de limite de taille du zram. Par défaut c'est 4Go
max-zram-size=none
# Utiliser zstd pour la compression, plutôt que l'algo par défaut (qui change d'une machine à l'autre)
compression-algorithm=zstd

Statistiques

L'utilitaire zramctl du paquet util-linux permet d'obtenir des statistiques utiles.

% zramctl 
NAME       ALGORITHM DISKSIZE  DATA  COMPR  TOTAL STREAMS MOUNTPOINT
/dev/zram0 zstd           16G  4,9G 609,1M 758,4M       4 [SWAP]

Ici, le périphérique zram0 contient 4.9Go de données mais n'occupe que 758.4Mo de RAM. htop est également en mesure de fournir des informations similaires :

zrm[|        602M(4.84G)/16.0G]
Note : Il est fort probable que le module zswap activé par défaut sur le noyau Archlinux «interfère» avec zramctl pour un usage de zram en tant que «RAM supplémentaire». Ce module permet de compresser la donnée avant de l'inscrire en swap: cette donnée est donc incompressible pour zram. On peut désactiver zswap au démarrage en ajoutant à sa cmdline: zswap.enable=0

Autres usages

Il reste tout à fait possible d'utiliser un périphérique zram pour y mettre un autre système de fichiers que swap.

modprobe zram
echo 8G > /sys/block/zram0/disksize
mkfs.ext4 /dev/zram0
mkdir /mnt/compressed_ext4
mount /dev/zram0 /mnt/compressed_ext4