Wie kann der komprimierte RAM-Swap dauerhaft aktiviert werden? Welche Version verwenden?

11

EDIT: Genau genommen gibt es jetzt zram-config . Es ist ein Upstart-Auftrag, bei dem bis zu der Hälfte Ihres RAMs über $ (Anzahl der CPU-Kerne) verteilt wird. Beim Booten hat es nicht immer angefangen, aber die Ausgabe von sudo service zram-config start funktioniert.

Ich habe compcache="256 M" in /etc/initramfs-tools/initramfs.conf wie beschrieben aktiviert hier (von mir: P). Dies - glaube ich - schafft /dev/ramzswap0 , wird aber nie als Swap aktiviert. Es funktioniert nur nach mkswap & amp; & amp; swapon .

Dann gibt es noch das Modul zram, das /dev/zram erstellt. Ist es etwas anderes? Es funktioniert genauso, aber /dev/ramzswap wird aus dem Modul ramzswap erstellt.

Am Ende des Tages möchte ich einen komprimierten Swap im RAM haben und das Beste von beiden nutzen, und dafür muss ich wissen, wie ich es dauerhaft auf nicht hackhafte Weise aktivieren kann. Wie wird das gemacht?

Ich habe in Lucid über Ramzswap hier aber die Dinge haben sich in Natty geändert. Sie können ramzswap weiterhin in initramfs.conf aktivieren, aber es wird nicht aktiviert.

P.S.:Ich überprüfte alle udev-Regeln in / lib und / etc, fand aber nichts Interessantes.

    
turbo 11.08.2011, 12:01

4 Antworten

2

Es gibt jetzt eine PPA, die ein richtiges Upstart-Skript installiert, um zram beim Booten zu aktivieren. Es wählt die richtige Größe und Anzahl der komprimierten Swap-Geräte für Ihr System.

link

    
Ryan Thompson 11.11.2011, 09:01
2

Ich hatte mit dem gleichen Problem zu kämpfen.

Heute habe ich einen hervorragenden Blogbeitrag darüber gefunden. link

Obwohl "sudo start zramswap" nicht funktioniert hat, wurde mein Problem beim Neustart meines PCs perfekt gelöst.

Probieren Sie es aus.

    
Shunsuke Watanabe 01.09.2011 02:12
1

Hier ist die günstige Lösung. Fügen Sie /etc/rc.local vor den exit 0 die folgende Zeile hinzu:

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

Direkt aus dem Debian-Wiki. Für mich ist dies das einfachste.

Kopieren Sie zuerst diesen Code und fügen Sie ihn in /etc/init.d/zram ein

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

Führen Sie als Nächstes diese beiden Befehle aus:

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

Zum Schluss fügen Sie zram beim Start hinzu:

sudo update-rc.d zram defaults

Fertig.

    
mchid 01.11.2014 01:51

Tags und Links