Saturday, November 19, 2005

Linux Swap - Programme im swap obwohl noch genug Arbeitsspeicher frei ist?

Vorwort

Dies hilft nicht immer, speziell bei komplexeren Anwendungen, wie Datenbanken (DB2) gibt es Prozesse, die sich in den "swap" auslagern obwohl man an vielen Schrauben gedreht hat. Für die normalen Heimanwender, speziell wenn man einen etwas betagteren Rechne hat ist diese Einstellmöglichkeit doch hilfreich. Zumindest geht es mir oft so, wenn ich programmiere bzw. im Buch stöbere, dass Programme in den Swap ausgelagert werden, obwohl ich sie (aus meiner Sicht) doch noch benutze.

Swap(files)
Wieviele Swapbereiche eingerichtet sind und von welchen Typ sie sind kann man mit Hilfe
folgenden Befehlsermittelt:
---snip---
linux:~ # swapon -s
Filename Type Size Used Priority
/dev/hda11 partition 522072 0 -1
---snap---

Sie können z.B auch einen Swapbereich in eine Datei (hier ca. 200MB) erstellen:

Die Datei können sie wie folgt anlegen:
dd if=/dev/zero of=/swapfile bs=4096 count=50000

Mit "mkswap /swapfile" krichten Sie die Datei als Swapbereich ein.

Zuguterletzt können Sie mit "swapon /swapfile" das Swapfile aktivieren.
(mit -p können Sie hier die priority, also in welchen swapbereich zuerst geswapt wird angeben)

Damit das ganze auch nach einem Neustart wieder da ist müssen Sie das in "/etc/fstab"
eintragen:

---snip---
/dev/hda11 swap swap priority=60,defaults 0 0
---snap---


Wie Sie nun das Swapverhalten zwischen mehreren Swapbereichen einstellen wissen Sie nun. Wie Sie das generelle Swapverhalten einstellen sehen Sie hier:

in "/proc/sys/vm/swappiness" können Sie den Prozentualen Wert hinterlegen wie stark geswapt werden soll. Der Default ist hier meist "60".
Private setze ich diesen Wert lieber auf "10" - quasi nur swappen, wenn der speicher recht knapp wird.

Den Wert können Sie wie folgt ändern:
echo -n "10" >/proc/sys/vm/swappiness

No comments: