Utiliser Zswap pour Améliorer les Performances sur un PC Linux avec Peu de RAM

Affrontons la réalité, certains d’entre nous ne mettent pas à niveau aussi souvent. Ou, du moins, en tant qu’utilisateurs de Linux, nous aimons réutiliser nos anciens ordinateurs portables/ordinateurs. De nombreuses distributions fonctionnent confortablement sur des systèmes avec peu de RAM (Mémoire Vive). Les navigateurs, cependant, ne sont pas si indulgents, nécessitant de plus en plus de mémoire à mesure qu’Internet évolue.

Bien qu’un système avec l’environnement de bureau LXDE puisse nécessiter aussi peu que 150 Mo de RAM après son démarrage, Chromium, Chrome ou Firefox vont rapidement consommer des centaines de mégaoctets, voire plusieurs gigaoctets de RAM à mesure que nous ouvrons quelques onglets.

Et c’est là que cela se produit ! Le disque dur commence à faire du bruit. La musique commence à hoqueter. Lorsque nous passons à une autre application, elle met des dizaines de secondes à apparaître à l’écran. Même le curseur de la souris peut commencer à ralentir. C’est l’effet du thrashing disque.

Qu’est-ce que le Thrashing Disque ?

Tout d’abord, nous devons comprendre le swap. Lorsque nous manquons de RAM libre, les données d’application auxquelles le système d’exploitation n’a pas accédé depuis longtemps sont déplacées vers la zone de swap. Cela se fait souvent sur un dispositif de stockage physique. En faisant cela, le système d’exploitation peut libérer de l’espace mémoire dont un programme a besoin maintenant. De cette manière, un onglet de notre navigateur que nous n’avons pas consulté au cours de la dernière heure peut être échangé vers le disque dur. Maintenant, l’éditeur d’images GIMP peut fonctionner. Lorsque nous le fermons et revenons à cet ancien onglet, le système d’exploitation le swap à nouveau en mémoire (le lit depuis le disque et le copie à nouveau dans la mémoire vive).

zswap-hard-disk

Ce mécanisme fonctionne bien pour échanger de petites quantités de données. Mais quand, disons, seulement 2 Go de RAM sont disponibles et que tous les programmes ouverts nécessitent 4 Go, le système d’exploitation doit swapper constamment. Déplacer des données de la mémoire vers le disque, du disque vers la mémoire, et ainsi de suite, constamment, est très lent, surtout avec les disques durs. Dans une telle situation, le dispositif de stockage n’est pas capable de répondre aux demandes assez rapidement. En résumé, lorsque le thrashing disque se produit, les choses deviennent très lentes.

Les Disques SSD sont Idéaux pour le Swap

Il existe un mythe qui circule encore sur Internet : « Ne configurez jamais le swap sur SSD. Cela va tuer votre appareil ! » Cela était vrai il y a quelques années, mais ce n’est plus le cas. En fait, configurer le swap sur un disque SSD donne d’excellents résultats. Si l’ordinateur comprend un dispositif SSD avec de bonnes performances de lecture/écriture aléatoire (au moins 300 Mo), configurez une partition de swap dessus et ignorez le reste de cet article. Lorsque le système d’exploitation doit échanger 1 Go de données, cela prendra moins de cinq secondes, alors que sur un disque dur, cela prendrait plus d’une minute.

Comment Réduire Significativement le Thrashing Disque sur Linux

zswap-meme-compress-ram

Heureusement, la plupart des données stockées dans la RAM sont très compressibles. Cela signifie que si nous prenons 200 Mo de données stockées en mémoire et que nous les compressons, nous pouvons réduire la taille à 100 Mo. Par conséquent, cela signifie que le système devra écrire beaucoup moins de données sur le disque lors du swap.

Imaginez que, au lieu d’attendre trente secondes pour passer à un programme, vous devez attendre quinze. C’est une amélioration palpable. Mais, en fait, l’accélération est beaucoup plus significative (vous devez peut-être attendre moins de dix secondes) car l’outil que nous allons utiliser est plus sophistiqué que cela. Il envoie intelligemment sur le disque uniquement les morceaux qui ne peuvent pas être compressés, gardant le reste dans une portion réservée de la mémoire. Si vous souhaitez en savoir plus sur ses internals, consultez la page officielle du noyau Linux à propos de zswap.

Une version simple des avantages que nous tirons en utilisant zswap est qu’au lieu de ralentissements horribles lorsque nous manquons de mémoire, nous obtenons des ralentissements tolérables et légers qui ne durent que quelques secondes plutôt que des dizaines de secondes ou même des minutes.

Comment Activer zswap Sur les Distributions Basées sur Debian (Ubuntu, Linux Mint, etc.)

Ouvrez une application de terminal et exécutez cette commande pour éditer le fichier de configuration template du chargeur de démarrage Grub :

sudoedit /etc/default/grub

zswap-edit-grub-template-config

Avec vos flèches de curseur, naviguez jusqu’à la ligne qui commence par « GRUB_CMDLINE_LINUX_DEFAULT ». Dans les guillemets, ajoutez le texte suivant :

zswap.enabled=1

zswap-editing-grub-template-config-2

Par exemple, une ligne qui était GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" devient GRUB_CMDLINE_LINUX_DEFAULT="quiet splash zswap.enabled=1".

Pour enregistrer le fichier, appuyez sur Ctrl + X, suivi de « y », puis Entrée.

Générez les nouveaux fichiers de configuration Grub selon le modèle que nous avons précédemment édité :

sudo update-grub

zswap-update-grub-finished

Redémarrez et le module zswap sera activé automatiquement.

Comment Activer zswap sur Fedora et OpenSUSE

La procédure ici est similaire à celle de la section précédente mais avec quelques différences. Éditez le fichier de configuration template Grub.

sudoedit /etc/default/grub

Ajoutez zswap.enabled=1 dans les guillemets, sur la ligne qui commence par GRUB_CMDLINE_LINUX.

zswap-editing-grub-template-fedora

Appuyez sur Ctrl + X, suivi de « y », puis Entrée pour sauvegarder le fichier.

Selon que votre ordinateur démarre depuis un BIOS ou un système UEFI, le fichier de configuration de Grub est généré dans un chemin différent. Pour trouver où il se trouve actuellement, entrez la commande suivante :

sudofind/boot/-name grub.cfg

zswap-find-grub-cfg-on-fedora

Utilisez le chemin qui est affiché ici dans la prochaine commande. Par exemple, dans notre cas, le chemin trouvé était « /boot/grub2/grub.cfg », donc nous l’ajouterons à la fin de la prochaine commande après « -o » :

sudo grub2-mkconfig -o/boot/grub2/grub.cfg

Redémarrez l’ordinateur. Après le redémarrage, vérifiez si le module est actif :

cat/sys/module/zswap/parameters/enabled

Si le résultat est « Y », cela signifie que le module fonctionne correctement.

Comment Activer zswap sur Arch Linux

Installez le package systemd-swap :

sudo pacman -Sy systemd-swap

zswap-pacman-install-systemd-swap

Faites en sorte que ce package fasse son travail au démarrage :

sudo systemctl enable systemd-swap

Démarrez-le maintenant, sans redémarrer :

sudo systemctl start systemd-swap

Pour vérifier si tout a fonctionné comme prévu, vérifiez si le module zswap est activé :

cat/sys/module/zswap/parameters/enabled

zswap-enable-systemd-swap-service

Si le résultat est « Y », cela signifie que le module est actif.

Comment Activer zswap sur Différentes Distributions

De manière générale, activer zswap au démarrage est aussi simple que d’ajouter zswap.enabled=1 à vos paramètres du noyau. La plupart des distributions utilisent Grub2 comme chargeur de démarrage par défaut. Si vous utilisez un chargeur de démarrage différent, recherchez le fichier de configuration où il stocke les paramètres du noyau à passer au démarrage et ajoutez zswap.enabled=1 comme paramètre supplémentaire.

Un autre paramètre que vous pouvez expérimenter pour voir s’il améliore les performances pour votre cas d’utilisation spécifique est zswap.max_pool_percent=20. Vous pouvez l’ajuster en changeant le nombre à la fin : par exemple, zswap.max_pool_percent=50.

Ajoutez-le aux mêmes paramètres du noyau où vous ajoutez zswap.enabled=1. Il est recommandé de ne pas dépasser 50 % car plus que cela peut avoir des effets néfastes sur les systèmes avec peu de RAM.

Conclusion

Si vous avez souvent manqué de RAM sur votre ancien système et ressenti les effets ennuyeux du thrashing disque, vous remarquerez et apprécierez immédiatement la différence à partir de maintenant. Au lieu de ralentissements horribles, vous expérimenterez un léger délai temporaire qui dure quelques secondes (plutôt que des minutes) lorsque le système d’exploitation doit swapper de nombreuses données sur le disque. Vous pourrez continuer à travailler dans des situations où auparavant vous ne pouviez pas utiliser votre ordinateur pendant le temps qu’il swapait.