Como habilitar permanentemente a troca de memória ram compactada? Qual versão usar?

11

EDIT: com precisão, há agora zram-config . É um trabalho arriscado que comprime até a metade de sua memória RAM distribuída por dispositivos de troca de $ (número de núcleos da CPU). Não foi sempre iniciado na inicialização, mas a emissão de sudo service zram-config start funciona.

Eu habilitei o compcache="256 M" em /etc/initramfs-tools/initramfs.conf como descrito aqui (por mim: P). Isso - creio - cria /dev/ramzswap0 , mas nunca é habilitado como swap. Funciona somente depois de mkswap & & swapon .

Em seguida, há o zram do módulo que cria /dev/zram . É outra coisa? Funciona da mesma forma, mas /dev/ramzswap é criado a partir do módulo ramzswap.

No final do dia eu quero ter um swap compactado em memória RAM e usar o melhor dos dois e para isso eu preciso saber como habilitá-lo permanentemente de uma maneira não-hackeada. Como isso é feito?

Eu escrevi sobre o ramzswap no Lucid aqui

P.S.:Eu verifiquei todas as regras do udev em / lib e / etc, mas não encontrei nada de interesse.

    
por turbo 11.08.2011 / 12:01

4 respostas

2

Existe agora um PPA que instala um script Upstart apropriado para habilitar o zram no momento da inicialização. Ele escolhe o tamanho correto e o número de dispositivos de troca compactados para o seu sistema.

link

    
por Ryan Thompson 11.11.2011 / 09:01
2

Eu estava lutando com o mesmo problema.

Hoje encontrei um excelente post sobre isso. link

Embora "sudo start zramswap" não funcionasse, quando reiniciei meu PC, resolvi meu problema perfeitamente.

Experimente.

    
por Shunsuke Watanabe 01.09.2011 / 02:12
1

Aqui está a solução barata. Adicione a seguinte linha a /etc/rc.local , antes do exit 0 :

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

Direto do wiki do Debian. Para mim, isso é o mais fácil.

Primeiro, copie e cole este código em /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 <[email protected]>
# 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

Em seguida, execute estes dois comandos:

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

Finalmente, para adicionar o zram na inicialização:

sudo update-rc.d zram defaults

Feito.

    
por mchid 01.11.2014 / 01:51