Toujours sous Ubuntu 24.04.
Toujours content mais le système commence à s’alourdir un peu.
Malheureusement, mon PC portable de travail étant un Dell XPS 13 de 2016 qui tient toujours très bien la route (à part la batterie HS mais possible à changer), la RAM n’est pas extensible, de ce fait il commence à y avoir quelques lenteurs avec des pages web qui s’amusent à bouffer toute la RAM…
Et du coup, comme Excel n’est toujours pas disponible sous Linux (enfin si, il y a les versions Office 365 gratuites mais limitées, et qu’on ne me parle pas d’OnlyOffice qui crash régulièrement et qui n’a pas toutes les fonctions qu’Excel propose, du coup c’est la galère pour reprendre le travail déjà commencé sur Excel) j’ai dû me résigner à réinstaller une machine virtuelle pour faire tourner Office…
Sachant qu’il faut bien 4 Go de RAM, sur mes 8 Go disponibles c’est très limité.
J’ai alors augmenté la taille de mon SWAP (cette micro-partition qui permet à la RAM de se décharger sur le SSD quand elle est à 60% de sa capacité par défaut) de 4 Go à 8 Go. Mais c’est assez lent tout de même.
Et en cherchant un peu je suis tombé sur ZSWAP et ZRAM.
Alors, la différence est assez subtile et dépend du besoin.
ZSWAP ne remplace pas le SWAP mais sert de « filtre » entre le SWAP et la RAM. En gros, il compresse les données de la RAM pour les garder dans la RAM (donc optimise le volume de données pouvant être stocké dans la RAM) mais décharge dans le SWAP si besoin.
ZRAM crée une partition SWAP dans la RAM directement. C’est une optimisation de la RAM pour compresser les données dans la RAM. L’avantage c’est que c’est hyper rapide mais d’un autre côté il n’y a rien d’écrit, donc si ça plante en cas de surcharge on perd les infos.
La compression n’étant pas magique, ça utilise la puissance CPU du processeur.
Le processeur n’étant pas non plus infini, c’est un choix à faire.
ZSWAP est moins gourmand en énergie, ZRAM est plus agressif (mais c’est réglable en fonction de l’algorithme de compression qu’on choisit apparemment) et consomme plus de CPU mais est mieux pour compresser la RAM.
Personnellement, j’ai choisi ZSWAP par sécurité et je me limite à l’utilisation de la machine virtuelle avec un navigateur léger comme Chromium sur Ubuntu pour ne pas trop en demander et avoir le minimum (ma session Firefox a besoin que je prenne le temps de lire les 300 onglets ouverts ahah).
Procéder en plusieurs étapes
Modifier la taille du swap actuel
Désactiver le swap actuel
sudo swapoff -a
Créer le nouveau fichier de swap (8G pour 8 Go)
sudo fallocate -l 8G /swap.img
Sécuriser le fichier
sudo chmod 600 /swap.img
Formater le fichier en « Swap »
sudo mkswap /swap.img
Réactiver le swap
sudo swapon /swap.img
Vérifier que tout est correct
free -h
Changer le swappiness
Le « swappiness » c’est le % de remplissage de la RAM avant transfert au SWAP.
Par défaut la valeur est à 60. Donc le transfert se fait quand 40% de la RAM est occupée.
Du coup on perd en vitesse alors qu’il reste encore 60% de RAM.
J’ai choisi la valeur de 10, donc j’attends que 90% de la RAM soit pleine pour « swaper ».
Vérifier la valeur actuelle
cat /proc/sys/vm/swappiness
Tester une nouvelle valeur (ouvrir plein de fenêtres et d’onglets pour charger la RAM) et ouvrir le « moniteur système » pour voir la différence)
sudo sysctl vm.swappiness=10
Rendre le réglage permanent
sudo nano /etc/sysctl.conf
Ajouter tout en bas après les lignes commentées
vm.swappiness=10
Sauvegarde avec Ctrl+O, puis Entrée, et quitte avec Ctrl+X.
Activer ZSWAP
Ouvrir GRUB pour l’activer au démarrage
sudo nano /etc/default/grub
Chercher la ligne GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" et la modifier en GRUB_CMDLINE_LINUX_DEFAULT="quiet splash zswap.enabled=1"
Sauvegarde (Ctrl+O, puis Entrée) et quitte (Ctrl+X).
Puis mettre à jour le GRUB
sudo update-grub
Redémarrer le PC.
Refaire un test avec les onglets et les fenêtres et vérifier :
sudo grep -r . /sys/kernel/debug/zswap/
Ce qu’il faut regarder :
- stored_pages : C’est le nombre de pages de mémoire compressées. Si ce chiffre est supérieur à 0, c’est que zswap fonctionne.
- pool_total_size : C’est la place réelle que prend le swap compressé dans la RAM.
Avec ça, la machine virtuelle fonctionne bien et mon PC ne plante pas !
Petit bonus :
Si Firefox vous fait planter le PC parfois, faire Maj + Échap pour voir quel onglet ou extension bouffe les ressources et l’arrêter.
Gérer le manque de RAM (EarlyOOM)
Sur Ubuntu, quand la RAM est pleine, le système « gèle » souvent avant de réagir. EarlyOOM est un petit outil qui intervient plus tôt pour tuer l’application gourmande (comme Firefox) avant que toute la session ne plante et risquer de tout perdre.
Installation : sudo apt install earlyoom
Activation : sudo systemctl enable --now earlyoom
Désormais, si la RAM sature, Firefox sera fermé proprement, mais votre session Ubuntu restera ouverte.
Pour mieux comprendre, j’ai demandé à Gemini de me faire une beau récap’ entre les 2 avec leur différents paramètres :
| Caractéristique | zswap | zram |
| Type | Cache de compression (intermédiaire) | Disque virtuel compressé (swap direct) |
| Nécessite un swap disque ? | Oui (obligatoire pour fonctionner) | Non (peut remplacer le disque) |
| Gestion de la taille | Dynamique (utilise un % max de la RAM) | Fixe (taille définie au démarrage) |
| Comportement si plein | Déplace les données vers le disque | Utilise le swap disque (si prio basse) |
| Usage idéal | PC avec SSD/HDD et usage standard | Machines sans disque, Raspberry Pi, Android |
Le choix de l’algorithme (Compressor)
L’algorithme est le « moteur » qui compresse vos données. Voici les trois plus courants pour les deux systèmes :
1. zstd (Le favori moderne)
- Points forts : Excellent taux de compression (gagne plus de place).
- Points faibles : Utilise un peu plus de CPU que lzo.
- Utilisation : Idéal pour les processeurs récents (Intel Core, AMD Ryzen) où l’on veut maximiser la RAM disponible.
2. lz4 (Le sprinteur)
- Points forts : Ultra-rapide pour décompresser. Presque aucun impact sur le processeur.
- Points faibles : Compresse moins bien (les fichiers restent plus gros).
- Utilisation : PC anciens, processeurs faibles (Atom, Celeron) ou si vous jouez à des jeux très gourmands.
3. lzo / lzo-rle (Le classique)
- Points forts : Très stable, souvent l’option par défaut historique.
- Points faibles : Dépassé par lz4 en vitesse et par zstd en compression.
- Utilisation : Compatibilité par défaut si vous ne voulez rien toucher.