Installation, configuration et gestion de zram sous SUSE Linux Micro
- 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.
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 ».Préparez la configuration comme décrit à la Section 2.2, « Configuration requise pour zram ».
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 ».
Redémarrez votre machine.
Vérifiez que tout fonctionne correctement. Exécutez la commande
zramctl
, qui doit produire une sortie similaire à la suivante :>
sudo
zramctl
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 commandeMemTotal
.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 pertelz4
oulz4hc
: algorithme de compression de données sans perte axé sur la vitesse de compression et de décompressionlzo-rle
: algorithme de compression de données sans perte axé sur la vitesse de décompressionzstd
, autrement dit Zstandard : algorithme de compression de données sans perte comparable à DEFLATE pour le taux de compression, mais plus rapide pendant la décompression842
: 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 :
Créez les unités de périphérique zram en exécutant la commande suivante :
>
sudo
systemctl daemon-reload
Démarrez le périphérique :
>
sudo
systemctl start DEVICE_NAME
DEVICE_NAME is the name you configured in/etc/systemd/zram-generator.conf
and it is in the format/dev/zramN
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
3 Mentions légales #
Copyright © 2006–2025 SUSE LLC et contributeurs. Tous droits réservés.
Il est autorisé de copier, distribuer et/ou modifier ce document conformément aux conditions de la licence de documentation libre GNU version 1.2 ou (à votre discrétion) 1.3, avec la section permanente qu'est cette mention de copyright et la licence. Une copie de la version de licence 1.2 est incluse dans la section intitulée « Licence de documentation libre GNU ».
Pour les marques commerciales SUSE, consultez le site Web https://www.suse.com/company/legal/. Toutes les autres marques de fabricants tiers sont la propriété de leur détenteur respectif. Les symboles de marque (®, ™, etc.) désignent des marques commerciales de SUSE et de ses sociétés affiliées. Des astérisques (*) désignent des marques commerciales de fabricants tiers.
Toutes les informations de cet ouvrage ont été regroupées avec le plus grand soin. Cela ne garantit cependant pas sa complète exactitude. Ni SUSE LLC, ni les sociétés affiliées, ni les auteurs, ni les traducteurs ne peuvent être tenus responsables des erreurs possibles ou des conséquences qu'elles peuvent entraîner.