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