ubuntuusers.de

Hinweis: Dies ist ein statischer Snapshot unseres Wikis vom 25. März 2013 und kann daher nicht bearbeitet werden. Der aktuelle Artikel ist unter wiki.ubuntuusers.de zu finden.
WikizRam

zRam

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Wiki/Icons/Oxygen/media-flash.png Gerade auf Systemen mit wenig Arbeitsspeicher kommt es hin und wieder vor, dass dieser knapp wird und das System beginnt, den Swap-Speicher zu nutzen. Da sich dieser auf der Festplatte befindet, ist er im Vergleich zum RAM relativ langsam. Der Nutzer merkt das in Form von langsamen Programmen, springenden Mauszeigern oder einem komplett ausgelasteten System.

Abhilfe schafft eine im Linux-Kernel integrierte Technik: zRam {en} (Virtual Swap Compressed in RAM, früher als "compcache" bekannt). Nutzt man diese Technik, so wird ein komprimiertes Blockgerät direkt im Arbeitsspeicher des Computers erstellt. Auf diese Art können mehr Daten im Arbeitsspeicher gehalten werden. Dies führt dazu, dass das System nicht so schnell auf eine langsame Festplatte schreiben muss – der Preis ist eine etwas höhere Prozessorauslastung.

Für wen ist zRam geeignet?

Grundsätzlich für jeden. Jedoch macht es kaum bis wenig Sinn, es auf Computern mit 4 GiB oder mehr Arbeitsspeicher zu aktivieren. Diese Computer besitzen ausreichend Speicher und müssen deshalb sehr selten (oder gar nicht) in den Swap schreiben. Aber mit weniger Speicher ist zRam einen Versuch wert. Positive Berichte liegen für Systeme mit 512 MiB bis 2 GiB RAM vor. Wie der Swap-Speicher genutzt wird, kann man vorher mittels Swap überwachen herausbekommen.

Einzige Voraussetzung ist ein Kernel ab 2.6.37 oder neuer. Wer sich unsicher ist, welche Kernel-Version vorhanden ist, benutzt den Befehl [1]:

uname -r 

Installation

Hinweis:

Nach der Installation ist ein Neustart des Rechners erforderlich.

Ab Ubuntu 12.04

Man installiert [2] das folgende Paket:

  • zram-config (unter Ubuntu 12.04 noch in universe)

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install zram-config 

sudo aptitude install zram-config 

Bis Ubuntu 11.10

Die Installation kann auf zwei Wegen erfolgen: entweder man erstellt die benötigte Konfigurationsdatei selbst oder nutzt ein "Personal Package Archiv" (PPA).

Manuell

Das Team des Elementary OS {en} hat hierfür ein Upstart-Script erstellt, das zRam auf einfache Weise aktiviert. Man markiert den folgenden Textblock, kopiert ihn, öffnet einen Editor [3] mit Root-Rechten [4] und fügt ihn wieder ein:

description "Initializes zram swapping"

start on runlevel [2345]
stop on runlevel [!2345]

pre-start script

# get the number of CPUs
num_cpus=$(grep -c processor /proc/cpuinfo)
# if something goes wrong, assume we have 1
[ "$num_cpus" != 0 ] || num_cpus=1

# set decremented number of CPUs
decr_num_cpus=$((num_cpus - 1))

# get the amount of memory in the machine
mem_total_kb=$(grep MemTotal /proc/meminfo | grep -E --only-matching '[[:digit:]]+')
mem_total=$((mem_total_kb * 1024))

# load dependency modules
modprobe zram num_devices=$num_cpus

# initialize the devices
for i in $(seq 0 $decr_num_cpus); do
echo $((mem_total / num_cpus)) > /sys/block/zram$i/disksize
done

# Creating swap filesystems
for i in $(seq 0 $decr_num_cpus); do
mkswap /dev/zram$i
done

# Switch the swaps on
for i in $(seq 0 $decr_num_cpus); do
swapon -p 100 /dev/zram$i
done
end script

post-stop script

# get the number of CPUs
num_cpus=$(grep -c processor /proc/cpuinfo)

# set decremented number of CPUs
decr_num_cpus=$((num_cpus - 1))

# Switching off swap
for i in $(seq 0 $decr_num_cpus); do
if [ "$(grep /dev/zram$i /proc/swaps)" != "" ]; then
swapoff /dev/zram$i
fi
done

rmmod zram
end script

Nun speichert man die Datei als /etc/init/zramswap.conf ab. Nach einem Neustart aktiviert sich zRam dann von selbst.

PPA

Ein Mitglied des Elementary OS-Teams bietet alternativ ein PPA [5] für Ubuntu 11.04 oder neuer an.

Adresszeile zum Hinzufügen des PPAs:

  • ppa:shnatsel/zram

Hinweis!

Zusätzliche Fremdquellen können das System gefährden.


Ein PPA unterstützt nicht zwangsläufig alle Ubuntu-Versionen. Weitere Informationen bietet die Wiki/Vorlagen/PPA/ppa.png PPA-Beschreibung vom Benutzer/Team shnatsel.

Damit Pakete aus dem PPA genutzt werden können, müssen die Paketquellen neu eingelesen werden.

Nach dem Aktualisieren der Paketquellen kann nun das folgende Paket installiert [5] werden:

  • zramswap-enabler (ppa)

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install zramswap-enabler 

sudo aptitude install zramswap-enabler 

Nach einem Neustart wird zRAM automatisch genutzt.

Kontrolle

Folgender Befehl zeigt, ob zRam aktiv ist:

swapon -s 

Beispielausgabe:

Filename				Type		Size	Used	Priority
/dev/zram0                              partition	1955620	0	100
/dev/sdb3                               partition	 791036	0	-1

Neben einer kleinen Swap-Partition auf /dev/sdb3 werden hier 2 GiB für zRam genutzt.

Deinstallation

Hat man es manuell installiert, braucht nur die Datei /etc/init/zramswap.conf mit Root-Rechten [3] gelöscht werden. Hat man die offiziellen Paketquellen oder das PPA genutzt, so kann das jeweilige Paket über die Paketverwaltung deinstalliert werden.

Anschließend muss der Rechner neu gestartet werden.

Problembehandlung

Grafikfehler

In einigen Quellen wird behauptet, dass es mit manchen Grafikkarten (und -Treibern) zu Problemen kommen kann. Sollte dies der Fall sein, ist zRam wieder zu entfernen.

Doppelt so viel Swapspeicher nach Installation

Das ist ganz normal, da zRam sich als Swap hinzufügt. Den "alten" Swap sollte man jedoch nicht entfernen, da er z.B. für den Ruhezustand genutzt wird.

ubuntuusers.local › WikizRam