¿Cómo habilitar permanentemente el intercambio de ram comprimido? ¿Qué versión usar?

11

EDITAR: Precisamente ahora hay zram-config . Es un trabajo emergente que comprime hasta la mitad de su memoria RAM en dispositivos de intercambio de $ (número de núcleos de CPU). No siempre comienza en el arranque, pero la emisión de sudo service zram-config start funciona.

He habilitado compcache="256 M" en /etc/initramfs-tools/initramfs.conf como se describe aquí (por mí: P). Esto, creo, crea /dev/ramzswap0 pero nunca se habilita como swap. Solo funciona después de mkswap & & swapon .

Luego está el módulo zram que crea /dev/zram . ¿Es algo más? Funciona de la misma manera, pero /dev/ramzswap se crea a partir del módulo ramzswap.

Al final del día quiero tener un intercambio comprimido en el ram y usar el mejor de los dos y para eso necesito saber cómo habilitarlo permanentemente de una manera no pirata. ¿Cómo se hace esto?

Escribí sobre ramzswap en Lucid aquí pero las cosas han cambiado en Natty. Aún puedes habilitar ramzswap en initramfs.conf pero no se activa.

P.S.:He escaneado todas las reglas de udev en / lib y / etc pero no encontré nada de interés.

    
pregunta turbo 11.08.2011 - 12:01

4 respuestas

2

Ahora hay un PPA que instala un script Upstart adecuado para habilitar zram en el momento del arranque. Elige el tamaño y número correctos de dispositivos de intercambio comprimidos para su sistema.

enlace

    
respondido por el Ryan Thompson 11.11.2011 - 09:01
2

Estaba luchando con el mismo problema.

Hoy encontré una excelente publicación de blog al respecto. enlace

Aunque "sudo start zramswap" no funcionó, cuando reinicié mi PC resolvió mi problema perfectamente.

Pruébalo.

    
respondido por el Shunsuke Watanabe 01.09.2011 - 02:12
1

Aquí está la solución barata. Agregue la siguiente línea a /etc/rc.local , antes de exit 0 :

find /dev/ -maxdepth 1 -name 'ramzswap*' | while read dev; do
    mkswap $dev
    swapon -p 1000 $dev
done
    
respondido por el Ryan Thompson 14.08.2011 - 13:56
1

Directamente desde la wiki de Debian. Para mí, esto es lo más fácil.

Primero, copie y pegue este código en /etc/init.d/zram

### 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

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

A continuación, ejecute estos dos comandos:

sudo chmod +x /etc/init.d/zram
sudo /etc/init.d/zram start

Finalmente, para agregar zram al inicio:

sudo update-rc.d zram defaults

Hecho.

    
respondido por el mchid 01.11.2014 - 01:51

Lea otras preguntas en las etiquetas