Cet article est particulièrement intéressant pour les petites dotation en RAM comme le Raspberry Pi.
Car oui, 1Go en 2016 c’est tout petit. Alors pour votre vieux netbook ou votre framboise, zRAM va vous aider.
Car zRAM (anciennement compcache) va compresser votre RAM et gérer une zone de SWAP dans la RAM. Il y a une petite perte de temps pour la compression qu’il faut relativiser avec le temps perdu en lecture/écriture d’une zone de SWAP classique sur un disque dur ou une clé usb (en usb 2 pour le pi)
J’ai testé sur le Pi 3 avec Ubuntu Mate :
- Pas de SWAP, (par défaut) petit freeze avec plusieurs logiciels lancés
- SWAP sur clé USB, l’écran ne freeze plus
- Zram, l’écran ne freeze plus et l’on gagne un peu plus en réactivité
La solution zRAM est pour moi de loin la meilleure, car donnant plus de souffle. Le premier lancement reste un peu long (identique à la distribution sans swap) par contre les lancements suivants dans la même session sont plus rapides.
Sous Ubuntu
Se fier à l’article de la doc Ubuntu : https://doc.ubuntu-fr.org/zram
Dont voici les actions à réaliser :
1 2 |
sudo apt-get install zram-config sudo reboot |
Sous Debian
Se fier au wiki Debian : https://wiki.debian.org/ZRam
Dont voici les actions à réaliser :
1 |
sudo nano /etc/init.d/zram |
y coller :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
#!/bin/sh ### BEGIN INIT INFO # Provides: zram # Required-Start: $local_fs # Required-Stop: $local_fs # Default-Start: S # Default-Stop: 0 1 6 # Short-Description: Use compressed RAM as in-memory swap # Description: Use compressed RAM as in-memory swap ### END INIT INFO # Author: Antonio Galea <antonio.galea@gmail.com> # Thanks to Przemysław Tomczyk for suggesting swapoff parallelization # Distributed under the GPL version 3 or above, see terms at # https://gnu.org/licenses/gpl-3.0.txt FRACTION=75 MEMORY=`perl -ne'/^MemTotal:\s+(\d+)/ && print $1*1024;' < /proc/meminfo` CPUS=`grep -c processor /proc/cpuinfo` SIZE=$(( MEMORY * FRACTION / 100 / CPUS )) case "$1" in "start") param=`modinfo zram|grep num_devices|cut -f2 -d:|tr -d ' '` modprobe zram $param=$CPUS for n in `seq $CPUS`; do i=$((n - 1)) echo $SIZE > /sys/block/zram$i/disksize mkswap /dev/zram$i swapon /dev/zram$i -p 10 done ;; "stop") for n in `seq $CPUS`; do i=$((n - 1)) swapoff /dev/zram$i && echo "disabled disk $n of $CPUS" & done wait sleep .5 modprobe -r zram ;; *) echo "Usage: `basename $0` (start | stop)" exit 1 ;; esac |
et enfin :
1 2 3 |
sudo chmod +x /etc/init.d/zram sudo insserv zram sudo reboot |
Pour rendre exécutable le fichier, l’ajouter au boot et redémarrer pour la prise d’effet.
Faire du tri
Quand on a un Raspberry Pi :
Attention ! Raspbian possède un fichier de SWAP sur la carte SD, c’est le moment de le désactiver, la durée de vie de votre carte SD s’en fera certainement ressentir.
1 2 |
sudo dphys-swapfile swapoff sudo dphys-swapfile uninstall |
Voir l’article sur Framboise 314 pour plus de détails : http://www.framboise314.fr/et-si-on-se-passait-du-swap/
Quand on n’a pas un Raspberry Pi :
Si vous avez un ordinateur autre que le Raspberry Pi, et si vous avez une zone de SWAP sur votre disque dur, alors c’est le moment de la désactiver et de la supprimer depuis Gparted par exemple.
SWAP sur USB (méthode alternative)
Si jamais vous voulez tester le SWAP sur USB, munissez vous d’une vieille clé, passage sous Gparted pour lui coller une partition de type “linux-swap” puis de trouver son petit nom avec la commande :
1 |
sudo fdisk -l |
Puis en partant du principe que votre swap usb se trouve en /dev/sda1 :
1 |
sudo swapon /dev/sda1 |
Attention, ça n’a d’effet que le temps de la session, à relancer à chaque démarrage donc.
Dernière astuce pour la route
Transférer les fichiers de log en RAM pour allonger la durée de vie de votre carte SD : http://www.magdiblog.fr/divers/comment-prolonger-la-duree-de-vie-de-vos-cartes-sd-sur-raspberry-pi/