Accéder au contenuNavigation Accéder à la page : page précédente [raccourci clavier p] / page suivante [raccourci clavier n]
documentation.suse.com / Installation, configuration et gestion de zram sous SUSE Linux Micro

Installation, configuration et gestion de zram sous SUSE Linux Micro

Date de publication : 20 mar 2025
CONTENU

zram est un module de kernel qui crée un périphérique de bloc compressé dans la mémoire RAM.

MOTIF

Cet article décrit comment installer et configurer zram sous SUSE Linux Micro.

EFFORT

La lecture de l'article prend environ 15 minutes.

OBJECTIF

Vous disposerez de périphériques de bloc configurés dans la mémoire RAM.

CONDITIONS REQUISES

Instance de SUSE Linux Micro enregistrée et en cours d'exécution.

1 Qu'est-ce que zram ?

zram est un module de kernel qui crée un périphérique de bloc compressé dans la mémoire RAM. Le périphérique de bloc peut être utilisé comme disque RAM (généralement pour stocker des fichiers temporaires) ou comme espace d'échange.

1.1 Avantages de zram

L'utilisation de zram présente les avantages suivants :

  • Opérations E/S rapides : en raison de la nature RAM de zram, les périphériques de bloc fournissent un accès très rapide aux données.

  • Économies de mémoire : la compression des données à l'aide de zram permet d'économiser une quantité significative de mémoire. Ainsi, zram utilise efficacement la mémoire RAM et convient particulièrement aux environnements disposant de peu de mémoire RAM, par exemple les systèmes intégrés.

  • Système de fichiers sur le périphérique de bloc : vous pouvez créer des systèmes de fichiers sur les périphériques de bloc.

1.2 Limitations de zram

L'hibernation dans l'espace d'échange de zram n'est pas prise en charge, même si vous configurez un périphérique de sauvegarde sur un stockage permanent.

2 Configuration de zram

Pour configurer correctement zram sur votre système, procédez comme suit. Les détails sont fournis dans les sections suivantes.

  1. Installez l'utilitaire zram-generator qui crée le périphérique de bloc RAM en fonction de la configuration fournie. Pour plus de détails sur l'installation, reportez-vous à la Section 2.1, « Installation des paquets zram ».

  2. Préparez la configuration comme décrit à la Section 2.2, « Configuration requise pour zram ».

  3. Exécutez des commandes pour créer des unités de périphérique, comme décrit à la Section 2.3, « Création d'unités de périphérique ».

  4. Redémarrez votre machine.

  5. Vérifiez que tout fonctionne correctement. Exécutez la commande zramctl, qui doit produire une sortie similaire à la suivante :

    > sudozramctl
    
    NAME       ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT
    /dev/zram1 lzo-rle      96.6M   4K   79B   12K       1 [SWAP]
    /dev/zram0 lzo-rle       483M   4K   79B   12K       1 [SWAP]

2.1 Installation des paquets zram

Le paquet zram-generator n'est pas disponible par défaut sous SUSE Linux Micro. Installez le paquet comme suit :

        > 
        sudo
        transactional-update pkg install zram-generator

Une fois l'installation réussie, redémarrez le système.

2.2 Configuration requise pour zram

Le fichier de configuration principal de zram est /etc/systemd/zram-generator.conf. Toutefois, vous pouvez créer un répertoire /etc/systemd/zram-generator.conf.d/ avec un ensemble de fichiers drop-in qui peuvent remplacer les entrées dans le fichier de configuration principal.

2.2.1 Fichier /etc/systemd/zram-generator.conf

Le fichier n'étant pas installé avec le paquet zram-generator, vous devez écrire le vôtre. Les options à ajouter sont décrites ci-dessous. Un exemple est fourni à la Section 2.2.1.1, « Exemple de fichier /etc/systemd/zram-generator.conf ».

Définissez au moins un périphérique zram. La numérotation commence à 0, de sorte que pour définir un périphérique zram, vous devez ajouter une section [zram0] au fichier de configuration.

Vous pouvez définir les entrées suivantes dans la section du périphérique zram :

host-memory-limit

Spécifiez la taille maximale de la mémoire RAM de l'hôte en Mio lorsqu'un périphérique de bloc peut être créé. Si la valeur est supérieure, le périphérique zram ne sera pas créé. Si cette valeur n'est pas définie ou est définie sur none, il n'y a pas de limite à la mémoire RAM de l'hôte.

zram-size

Spécifiez la taille du périphérique zram par rapport à la mémoire RAM de l'hôte. La valeur par défaut est zram-size = min(ram / 10, RAM_HARD_LIMIT). Il s'agit d'un des deux minimums, où ram est la taille de mémoire RAM de l'hôte obtenue en utilisant la commande MemTotal.

  • ram est la quantité totale de mémoire de l'hôte en Mo.

  • ram/10 est le ratio de la mémoire totale de l'hôte qui peut être utilisée pour zram. Selon l'exemple, zram peut utiliser 10 % de la mémoire totale de l'hôte. Nous recommandons des fractions de la mémoire RAM de l'hôte comprises entre 10 et 50 %.

  • RAM_HARD_LIMIT est la quantité maximale de mémoire RAM en Mo qui peut être utilisée par zram.

  • min() est une fonction qui compare la valeur de RAM_HARD_LIMIT avec le ratio calculé et sélectionne entre les deux la valeur la plus faible.

compression-algorithm

Spécifiez l'algorithme utilisé pour compresser les données dans zram. Vous pouvez utiliser n'importe laquelle des valeurs suivantes :

  • deflate : format de fichier de compression de données sans perte

  • lz4 ou lz4hc : algorithme de compression de données sans perte axé sur la vitesse de compression et de décompression

  • lzo-rle : algorithme de compression de données sans perte axé sur la vitesse de décompression

  • zstd, autrement dit Zstandard : algorithme de compression de données sans perte comparable à DEFLATE pour le taux de compression, mais plus rapide pendant la décompression

  • 842 : algorithme de compression de données

En cas d'omission, la valeur par défaut du kernel est utilisée (généralement LZO-RLE).

options

Spécifiez l'entrée options pour les options d'échange ou de montage d'un disque RAM. Si cette entrée est définie sur discard ou omise, les pages compressées inutilisées sont tronquées pendant l'exécution du système. Une telle solution permet une gestion efficace de zram. Pour remplacer la valeur par défaut (discard), laissez la valeur vide :

options =
writeback-device

Spécifiez un périphérique sur lequel stocker les pages incompressibles. Ces pages sont ensuite supprimées de zram.

fs-type

Si le périphérique est utilisé comme disque, spécifiez le système de fichiers à utiliser. Par exemple : ext4.

mount-point

Spécifiez un répertoire dans lequel monter le système de fichiers. Cette option n'est pas utilisée lorsque le périphérique zram est utilisé pour l'échange.

2.2.1.1 Exemple de fichier /etc/systemd/zram-generator.conf

L'exemple suivant crée deux périphériques de bloc dans la mémoire RAM : zram0 pour l'échange et zram1 avec le système de fichiers ext4. Si la machine a plus de 9 Go de mémoire RAM, zram0 ne sera pas créé. Chaque périphérique de bloc allouera jusqu'à 2 Go de mémoire RAM.

[zram0]
host-memory-limit = 9048      
zram-size = min(ram / 10, 2048)    
compression-algorithm = lzo-rle    
options = discard      
writeback-device = /dev/zvol/tarta-zoot/swap-writeback
    
[zram1]      
zram-size = ram / 10
fs-type = ext4
mount-point = /run/compressed-mount-point

2.3 Création d'unités de périphérique

Après avoir préparé la configuration, créez et démarrez les périphériques. Pour ce faire, reportez-vous à la procédure ci-dessous :

  1. Créez les unités de périphérique zram en exécutant la commande suivante :

                > 
                sudo
                systemctl daemon-reload
  2. Démarrez le périphérique :

    > sudosystemctl start DEVICE_NAMEDEVICE_NAME is the name you configured in
    /etc/systemd/zram-generator.conf and it is in the format /dev/zramN
  3. Pour vérifier que les modules ont été démarrés, exécutez la commande suivante pour chaque périphérique :

                > 
                sudo
                systemctl status DEVICE_NAME