Compactar memória em Ram VM baixa

1

Existe uma maneira de obter mais do seu RAM limitado em uma VM?

Eu tenho uma VM em execução em um hoster de nuvem e tento otimizar um mashine de RAM bastante baixo.

Ouvi dizer que há uma maneira de compactar partes na memória se toda a memória livre estiver em uso, chamada zram

Como faço isso funcionar?

    
por rubo77 08.06.2014 / 22:59

1 resposta

1

Como explicado no Wiki do Zram :

zram (previously called compcache) can create RAM based block devices. It is an experimental (staging) module of the Linux kernel since 3.2.

Então, se você está usando um kernel antes de 3.2, você precisa copiar o seguinte script (tirado de aqui ) para /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

dê-lhe direitos executáveis com

chmod +x /etc/init.d/zram

em seguida, instrua o seu sistema para iniciá-lo no momento da inicialização, com o comando

insserv zram

Após a próxima reinicialização, você verá a troca com

swapon -s

que se parece com:

Filename                Type        Size    Used    Priority
/dev/zram0                              partition   381668  380716  10
    
por 09.06.2014 / 02:26