Utilisez la RAM #RaspberryPi comme espace de swap

Les gagnants annoncés pour le concours Raspberry Pi de Nouvelle-Zélande

C’est intéressant. Quelqu’un chez Linux Journal utilise «zram» pour transformer la moitié de la RAM du Pi en un espace d’échange. Ils prétendent même avoir entièrement supprimé le fichier d’échange, ce qui devrait améliorer la durée de vie de vos cartes SD.

La plupart du travail a été effectué à l’aide d’un script d’extremeshok.com (qui n’est pas toujours en place). J’ai inclus le texte complet du message ici au cas où ils disparaîtraient tous les deux!


Les cartes SD s’améliorent chaque année en ce qui concerne les cycles de nivellement d’usure et d’écriture. Le souci est toujours qu’une utilisation excessive de la carte SD l’usera et qu’elle deviendra en lecture seule. Étant donné que le RPi souffre également d’une RAM limitée et non extensible, la question de l’espace d’échange est très débattue.

Raspbian est installé par défaut avec un fichier d’échange actif – pas une partition d’échange, mais un fichier d’échange. La question de savoir si ce fichier d’échange va épuiser votre carte SD est toujours en débat. J’ai tendance à être paranoïaque à propos de telles choses, alors j’ai cherché une alternative. Parce que j’ai les unités 512 Mo, j’ai un peu plus de RAM pour travailler, j’ai donc décidé d’utiliser zRam pour compresser une partie de la RAM système et l’utiliser comme espace d’échange. Comment ça marche? Fondamentalement, zRam permet au système d’utiliser la RAM comme espace de swap, mais dans un mode compressé qui lui permet d’apparaître comme plus de RAM + swap que le système n’en contient réellement.

zRam est déjà compilé dans le noyau Raspbian, donc si vous voulez essayer ma méthode, cela prend juste un peu de script. J’adore le script que j’ai trouvé sur le site Web eXtremeSHOK.com. Ce site est hors ligne au moment de la rédaction de cet article, j’ai donc inclus le script ci-dessous. Créez un fichier appelé /etc/init.d/zram, qui contient les éléments suivants:


#!/bin/bash
### BEGIN INIT INFO
#Provides: zram
#Required-Start:
#Required-Stop:
#Default-Start: 2 3 4 5
#Default-Stop: 0 1 6
#Short-Description: Increased Performance In Linux With zRam 
#(Virtual Swap Compressed in RAM)
#Description: Adapted for Raspbian (Rasberry pi) by eXtremeSHOK.com 
#using https://raw.github.com/gionn/etc/master/init.d/zram
### END INIT INFO

start() {
    mem_total_kb=$(grep MemTotal /proc/meminfo | grep -E --only-matching '[[:digit:]]+')

    modprobe zram

    sleep 1
    #only using 50% of system memory, comment the line 
    #below to use 100% of system memory
    mem_total_kb=$((mem_total_kb/2))

    echo $((mem_total_kb * 1024)) > /sys/block/zram0/disksize

    mkswap /dev/zram0

    swapon -p 100 /dev/zram0
}

stop() {
    swapoff /dev/zram0
    sleep 1
    rmmod zram
}

case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        stop
        sleep 3
        start
        ;;
    *)
        echo "Usage: $0 {start|stop|restart}"
        RETVAL=1
esac

Ensuite, vous devez rendre le script init exécutable et le forcer à démarrer automatiquement. Les commandes suivantes accomplissent cela:


sudo chmod +x /etc/init.d/zram
sudo update-rc.d zram defaults

Fondamentalement, comme écrit, le script utilisera la moitié de la RAM disponible comme espace d’échange compressé. Encore une fois, tout le mérite revient aux gens de eXtremeSHOK.com pour la création du script d’initialisation. J’ai été très satisfait de la performance, et cela m’a permis de me débarrasser complètement du fichier d’échange.


Espérons que quelqu’un trouvera cette information utile. Voici un lien vers l’article du Linux Journal.

Votre première bouchée de Raspberry Pi | Journal Linux.