압축 된 램 스왑을 영구적으로 활성화하는 방법은 무엇입니까? 어떤 버전을 사용해야합니까?


11

편집 : 정확하게 있습니다 zram-config. 램의 최대 절반을 $ (CPU 코어 수) 스왑 장치로 압축하는 시동 작업입니다. 부팅시 항상 시작되지는 않았지만 발행 sudo service zram-config start은 작동합니다.

여기에/etc/initramfs-tools/initramfs.conf 설명 된 대로 compcache = "256 M"을 활성화했습니다 (나 : P). 이것은 믿습니다- 하지만 스왑으로 활성화되지는 않습니다. && 후에 만 작동합니다 ./dev/ramzswap0mkswapswapon

그런 다음 zram 모듈을 만듭니다 /dev/zram. 다른 것입니까? 동일한 방식으로 작동하지만 /dev/ramzswapramzswap 모듈에서 작성됩니다.

하루가 끝나면 램으로 압축 스왑을하고 두 가지 중 더 나은 것을 사용하고 그것을 위해 해킹이 아닌 방식으로 영구적으로 활성화하는 방법을 알아야합니다. 이것은 어떻게 이루어 집니까?

나는 여기 Lucid 에서 ramzswap에 대해 썼지 만 Natty에서는 상황이 바뀌었다. initramfs.conf에서 ramzswap을 계속 활성화 할 수 있지만 활성화되지는 않습니다.

추신 : / lib 및 / etc의 모든 udev 규칙을 스캔했지만 관심이 없습니다.

답변:



2

나는 같은 문제로 고심하고 있었다.

오늘 나는 그것에 관한 훌륭한 블로그 게시물을 발견했습니다. http://weirdfellow.wordpress.com/2011/05/04/compressed-ram-with-zram/

"sudo start zramswap"이 작동하지 않았지만 PC를 다시 시작하면 문제가 완벽하게 해결되었습니다.

시도 해봐.


실제로 / etc / init /가 있음을 처음 알게되었습니다. 일반적으로 부팅시 물건을 시작하기 위해 /etc/init.d/를 사용합니다. 매혹적인 ...
터보

/etc/init/Upstart init 스크립트가있는 곳입니다. 에있는 것들은 /etc/init.d대부분에있는 것들을 호출하는 호환성 래퍼입니다 /etc/init.
Ryan C. Thompson

1

저렴한 솔루션입니다. 에 다음 줄을 추가 /etc/rc.local전과, exit 0:

find /dev/ -maxdepth 1 -name 'ramzswap*' | while read dev; do
    mkswap $dev
    swapon -p 1000 $dev
done

for i in /dev/ramzswap*;do ...더 나은 해결책이라고 생각합니다. 내 책에서 아직도 너무 해킹.
turbo

어때요 find /dev/ -maxdepth 1 -name 'ramzswap*' -print0 | while read -d0 dev; do ... ? 줄 바꿈이있는 이상한 파일 이름의 문제를 피할 수 있습니다.
Cbhihe

@ turbo : 오래된 것들이지만, 위의 Ryan의 대답은 실제로 당신이 yr 의견에서 제안하는 것보다 스크립팅 관점에서보다 일반적이고 안전하다고 생각합니다. 일반적으로 yr for loop는 공백 및 / 또는 특수 문자가있는 파일 이름에 문제를 일으킬 수 있습니다. 이것은 시스템에 프로세스를 절약한다고 말합니다.
Cbhihe

1

데비안 위키에서 바로. 저에게는 이것이 가장 쉬운 방법입니다.

먼저이 코드를 복사하여 /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

다음으로이 두 명령을 실행하십시오.

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

마지막으로 시작시 zram을 추가하려면 다음을 수행하십시오.

sudo update-rc.d zram defaults

끝난.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.