samedi 6 juillet 2013

ZRAM sur DEBIAN CRUNCHBANG WALDORF & MINT 13 XFCE

Modifié et remonté

Je signale que Zram est dans le Kernel de Mint13 XFCE et que l'on trouve dans Synaptic un script zram-config qu'il suffit d'installer. Zram est immédiatement opérationnel dans ce cas.

Cela fait plusieurs que j'essayais d'installer Zram sur Crunchbang et je ne trouvais pas. Tout ce que je trouvais (le plus souvent en Anglais) était flou et mal expliqué... Il existe bien des Deb pour Ubuntu mais ça ne marchait pas chez moi.
J'ai fini par trouver ici sur http://crunchbanglinux.org/forums/post/150355/#p150355. C'est en Anglais.
Je rappelle que Zram compresse la RAM pour pouvoir l'utiliser plus souvent à la place du Swap qui est désespérément lent, surtout sur un disque dur classique mais aussi si vous êtes un peu juste en RAM, 1 giga par exemple. Zram est généralement inclus d'origine dans les derniers Kernels. Pour vérifier si c'est le cas chez vous:

modprobe -nv zram

Faites "entrée"; si aucune erreur, c'est bon, il est présent dans votre Kernel!

Pour vérifier si Zram n'est pas déjà installé (on ne sait jamais...):

lsmod | grep zram

S'il est déjà installé et lancé, réponse dans ce genre:

zram                   13155  2

Voici le script mais ce serait plus sûr d'aller le chercher ici sur ma Dropbox: zram.tar.gz.


#!/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 from systemd scripts at https://github.com/mystilleef/FedoraZram
### END INIT INFO
start() {
    # get the number of CPUs
    num_cpus=$(grep -c processor /proc/cpuinfo)
    # if something goes wrong, assume we have 1
    [ "$num_cpus" != 0 ] || num_cpus=1

    # set decremented number of CPUs
    last_cpu=$((num_cpus - 1))
    
    #default Factor % = 90 change this value here or create /etc/default/zram
    FACTOR=90
    #& put the above single line in /etc/default/zram with the value you want
    [ -f /etc/default/zram ] && source /etc/default/zram || true
    factor=$FACTOR # percentage

    # get the amount of memory in the machine
    memtotal=$(grep MemTotal /proc/meminfo | awk ' { print $2 } ')
    mem_by_cpu=$(($memtotal/$num_cpus*$factor/100*1024))

    # load dependency modules
    # kernels 3.4 onwards
    if ! modprobe zram num_devices=$num_cpus; then
      # kernels 3.1 - 3.3
      modprobe zram zram_num_devices=$num_cpus        
    else
      echo -e "Your Kernel needs to be compiled with ZRAM support:" \
      "\n\nDevice Drivers --> Staging Drivers --> Compressed RAM block device support (M)" \
      "\nDevice Drivers --> Staging Drivers --> Dynamic compression of swap pages and clean pagecache pages (*)" \
      "\n\nThe Liquorix Kernel (http://liquorix.net) has ZRAM support built in."
      exit 1
    fi
    echo "zram devices probed successfully"
    
    # initialize the devices
    for i in $(seq 0 $last_cpu); do
    echo $mem_by_cpu > /sys/block/zram$i/disksize
    # Creating swap filesystems
    mkswap /dev/zram$i
    # Switch the swaps on
    swapon -p 100 /dev/zram$i
    done
}

stop() {
    # get the number of CPUs
    num_cpus=$(grep -c processor /proc/cpuinfo)

    # set decremented number of CPUs
    last_cpu=$((num_cpus - 1))

    # Switching off swap
    for i in $(seq 0 $last_cpu); do
    if [ "$(grep /dev/zram$i /proc/swaps)" != "" ]; then
    swapoff /dev/zram$i
    sleep 1
    fi
    done

    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
exit $RETVAL


Allez dans le dossier /etc/init.d/ et déposez-y le fichier zram téléchargé et décompressé. Ouvrez pour cela init.d en root.
Ensuite... rendez-le exécutable et ajoutez-le au "run level" par défaut. Comme ceci:

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

Redémarrez votre ordinateur puis vérifiez que Zram est bien lancé:

lsmod | grep zram

La réponse devrait ressembler à ça:

zram                   13155  2

Si vous essayez, n'hésitez pas à me faire part de vos expériences. Personnellement, j'ai trouvé mon ordi plus véloce... mais je me fais peut-être des idées...
Je signale qu'avant ça, j'avais fait un backup avec Clonezilla, au cas-où..

Aucun commentaire:

Enregistrer un commentaire

Remarque : Seul un membre de ce blog est autorisé à enregistrer un commentaire.