Elle concernait donc les mémoires limitées, pour lesquelles l'installateur d'Ubuntu a créé un fichier d'échange à la racine du système — voir fiche précédente.
La méthode ci-après va plus loin : cette fois, l'espace d'échange se situe dans la RAM elle-même et les données sont compressées, ce qui revient en fait à augmenter virtuellement la capacité de la mémoire. Tout ceci grâce au module zRam, implémenté dans le noyau depuis Ubuntu 12 — quelques distributions, comme Fedora, l'activent désormais par défaut.
Cette méthode ne dépend donc pas de la taille de la RAM, mais des possibilités du processeur, l'effort qu'on lui demande étant normalement compensé par la rapidité d'accès à la mémoire.
Les possesseurs d'ordinateurs modernes sans swapfile mais à la mémoire un peu "limitée" y trouveront ainsi une sécurité pour des usages plus gourmands en mémoire.
Mais il ne faut pas rêver : sur un ordinosaure de 2007 doté d'un Intel Core 2 Duo, la méthode précédente a un meilleur rendement.
Il convient donc d'essayer les deux méthodes pour se faire une impression.
C'est dans cet esprit que je vous explique ci-dessous comment revenir en arrière
Activation et paramétrage de zRam
Comme vous n'êtes pas censé avoir appliqué le tutoriel de la fiche précédente, on va commencer par vérifier la configuration en entrant cette ligne :
Code : Tout sélectionner
cat /proc/swaps
Sur ce retour bricolé pour les besoins, deux systèmes d'échange sont prévus : un swapfile sur le support physique et un espace zRam dans la RAM :
Code : Tout sélectionner
Filename Type Size Used Priority
/swapfile file 2097148 0 -2
/dev/zram0 partition 12109272 0 5
Mais ce n'est pas ce qu'on veut...
- Si le swapfile est déjà activé, désactivez-le afin qu'il n'interfère pas avec zRAM :
Code : Tout sélectionner
sudo swapoff /swapfile
Puis éditez le fichier "fstab" :
... et commentez cette ligne en ajoutant un "#" au début comme ceci :Code : Tout sélectionner
sudo gedit /etc/fstab
Enregistrez la modification.Code : Tout sélectionner
# /swapfile none swap sw 0 0
- Pour activer le module zRam, installez son script de configuration :
Code : Tout sélectionner
sudo apt update && sudo apt install zram-config
Créez le service et démarrez-le :
Code : Tout sélectionner
systemctl enable zram-config systemctl start zram-config
Enfin, éditez ce fichier :
Code : Tout sélectionner
sudo gedit /etc/sysctl.conf
Faites en sorte qu'il se termine par ces deux lignes — la valeur 150 pour forcer le swap :
Enregistrez et redémarrez :Code : Tout sélectionner
vm.swappiness = 150 vm.vfs_cache_pressure=50
Code : Tout sélectionner
reboot
Vérifiez que tout est Ok. Cette fois, la ligne :
... devrait retourner quelque chose comme ceci :Code : Tout sélectionner
cat /proc/swaps
Code : Tout sélectionner
Filename Type Size Used Priority /dev/zram0 partition 12109272 0 5 - Pour modifier les réglages, éditez ce fichier :La taille de l'espace zRam est définie dans cette ligne :
Code : Tout sélectionner
sudo gedit /usr/bin/init-zram-swapping
Par défaut, elle correspond donc à la moitié de celle de la RAM.Code : Tout sélectionner
mem=$((totalmem / 2 * 1024))
Remplacez "1024" par "512" pour la réduire au quart de celle de la RAM ou par "1536" pour l'augmenter aux trois-quarts.
- En fonction de la puissance de votre processeur, vous trouverez peut-être un gain en adoptant l'algorithme de compression "zstd", plus performant que "lzo-rle".
Ajoutez cette ligne juste après la précédente, comme ceci :Enregistrez la ou les modifications et redémarrez :lCode : Tout sélectionner
mem=$((totalmem / 2 * 1024)) echo zstd > /sys/block/zram0/comp_algorithm
Code : Tout sélectionner
reboot
Vous pouvez vérifier la prise en compte des réglages avec cette commande :
Code : Tout sélectionner
zramctl
- Pour supprimer zRam, on arrête le service, on le désactive et on désinstalle le script :
Code : Tout sélectionner
systemctl stop zram-config systemctl disable zram-config sudo apt purge zram-config - Pour rétablir le swapfile le cas échéant, on édite ce fichier :
... on décommente la ligne commençant par "# /swapfile" en supprimant le "#" et on enregistre.Code : Tout sélectionner
sudo gedit /etc/fstab
Ensuite, on active le fichier d'échange :
Puis on édite "sysctl.conf" :Code : Tout sélectionner
sudo swapon /swapfile
... on remet le swappiness sur 10 et on enregistre.Code : Tout sélectionner
sudo gedit /etc/sysctl.conf
Dans les deux cas, on redémarre :
Code : Tout sélectionner
reboot
