Galileo Computing < openbook >
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung


'Wie werde ich Unix-Guru' als Buch bestellen
A. Willemer
Wie werde ich UNIX-Guru
I  ANWENDUNG
Know-How für Unix/Linux-User: Einführung, Shell, Befehle, Hilfe, Arbeit mit Dateien, Editoren, Reguläre Ausdrücke, nützliche Tools, Hardware.

II  ADMINISTRATION
Tools, Systemstart, Benutzer verwalten, Hardware konfigurieren, Software installieren, Datensicherung, Tuning, Kernel

III  NETZWERK
Client/Server Systeme, TCP/IP, Routing, IPv6, Internet-Dienste, DHCP, Webserver, Firewalls

IV  DAS X-WINDOW SYSTEM
Die grafische Oberfläche von UNIX einrichten und nutzen

V  PROGRAMMIERUNG VON SHELLSKRIPTEN
Automatisieren von Tasks durch Shell-Skripte.

VI  PERL
Interpreter, Syntax, Variablen, Steuerung, Funktionen, UNIX-Aufrufe, GUIs mit Tk

VII  PROGRAMMIERWERKZEUGE
C-Compiler, Analyse-Tools, CVS, yacc, diff

VIII  UNIX-SYSTEMAUFRUFE
UNIX-Befehle in eigenen Programmen nutzen

IX  LITERATUR
Weiterführende Literatur zu UNIX und LINUX

 
Galileo Computing / <openbook> / "Wie werde ich UNIX-Guru ?"
« Dateisystem erstellen Festplatten Einbinden eines Dateisystems: mount »

Unterabschnitte
  • Swapdateien

Swapping

Neben den Datenpartionen verwendet UNIX eine Partition zum Swappen. Unter Swapping versteht man das Ein- und Auslagern von Prozessen aus dem Hauptspeicher auf die Festplatte. UNIX lagert Prozesse, die längere Zeit nicht aktiv wurden aus, wenn es im Hauptspeicher eng wird. Dadurch ist es möglich, dass mehr Prozesse gestartet sind, als in den Hauptspeicher passen.

Nun ist das Auslagern auf Platte und das Zurückholen in den Hauptspeicher ein recht zeitaufwändiges Verfahren, da die Platte einen sehr viel langsameren Zugriff hat als Hauptspeicher. Tatsächlich belastet das Swappen das System beim ersten Auftreten von Speicherengpässen erheblich. Je länger das System allerdings läuft, desto ruhiger wird es, weil mit der Zeit diejenigen Hintergrundprozesse ausgelagert werden, die selten zum Einsatz kommen. Solche Hintergrundprozesse, die nur auf ein bestimmtes Ereignis warten, um aktiv zu werden und die restliche Zeit schlafen, gibt es in einem UNIX-System in großer Zahl. Insofern ist es auch nicht beunruhigend, wenn der Swapbereich belegt ist.

Kritisch wird es erst dann, wenn Bewegung ins Spiel kommt, wenn also das System häufig auslagern muss. Dann sollte man den Hauptspeicher erweitern, weil das ständige Auslagern auf Platte die Maschine belastet. Wenn der Speicher derart überlastet ist, dass die Maschine ständig die Prozesse ein- und auslagert und sonst fast nicht mehr arbeitet, redet man vom Thrashing.

An sich ist die Bezeichnung Swappen nicht mehr ganz korrekt, da es an sich das Auslagern ganzer Prozesse bezeichnet. Heutige Systeme arbeiten längst mit Pagingverfahren. Das bedeutet, dass das Auslagern nicht mehr auf Prozessebene stattfindet, sondern dass Speicherseiten fester Größe ausgelagert werden. Man kann sich das so vorstellen, dass der Hauptspeicher in Kacheln gleicher Größe aufgeteilt ist und das System kontrolliert, welche Kachel wie oft benutzt wird. Auf diese Weise können Prozesse teils im RAM und teils auf der Platte liegen. Das Paging ist aufwändiger, aber auch wesentlich effizienter als das Swapping. Man spricht auch von virtuellem Speicher, da der Prozess nicht merkt, dass sich sein Speicher zum Teil eigentlich auf der Platte befindet.

Nachdem die Partition für das Swappen festgelegt ist, muss beispielsweise bei Linux analog zum Anlegen eines Dateisystems auch die Swap-Partion initialisiert werden. Dazu dient der Befehl mkswap. Als Parameter benötigt er die Gerätedatei der Partition.

Das Swappen wird beim Systemstart in einem rc-Skript gestartet. Der Befehl zum Aktivieren lautet swapon. Dabei wird es üblicherweise mit der Option -a gestartet. Das führt dazu, dass in der /etc/fstab nach den Swapdevices geschaut wird und diese aktiviert werden.

Über die Größe der Swap-Partition gibt es unterschiedliche Aussagen. Die Faustregel, den Hauptspeicher noch einmal als Swap zu nehmen, stammt wohl daher, dass das System im Falle eines Kernel-Panic, also eines Totalzusammenbruchs des Betriebssystems, einen Speicherabzug in die Swap-Partition schreibt. Abgesehen von dieser Überlegung ist die Regel wenig sinnvoll, da die Summe aus Swap-Partition und RAM den virtuellen Speicher ausmachen. Wenn also das RAM bereits knapp ist, sollte der Swapbereich großzügig sein. Ist jede Menge RAM im System, kann man vielleicht sogar ganz ohne Swap-Partition auskommen und nur als Sicherheit noch eine Swapdatei anlegen. Die Summe aus RAM und Swapbereich sollte auch im schlimmsten Fall noch ausreichend sein.

Fast jedes UNIX verwendet eine Swap-Partition und keine Datei. Der Vorteil liegt in der Geschwindigkeit. Der Zugriff auf die Swap-Partition erfolgt wesentlich schneller als der Zugriff über das Dateisystem. Der Nachteil ist, dass man zum Installationszeitpunkt festlegen muß, welche Größe der Swapbereich benötigen wird.

Swapdateien

Einige UNIX-Systeme können auch mit Swapdateien arbeiten. Dies kann eine schnelle Lösung sein, wenn der Swapbereich zu eng wird und eine erneute Partitionierung vermieden werden soll. Es ist aber vor allem eine dynamische Lösung, die kurzfristige, extreme Spitzen abfängt. Installiert man auf einem System zusätzlich zur Swap-Partition eine Swapdatei, wird es auch dann keinen Programmabbruch wegen zu wenig Speicher geben, wenn plötzlich mehr Prozesse gestartet werden, als je voraussehbar war.

Unter HP-UX kann am einfachsten über das Administrationstool sam eine Swapdatei eingerichtet werden. Dabei entsteht folgender Eintrag in der /etc/fstab (siehe dazu S. fstab):

/dev/vg00/lvol8 /users hfs rw,suid 0 2
/dev/vg00/lvol8 /users swapfs min=3840,lim=12800,pri=2 0 2

In der oberen Zeile sieht man, dass das Plattendevice lvol8 ein normales hfs-Dateisystem ist. Es wird auch tatsächlich für Benutzerdaten verwendet. Daneben liegt aber auch im Verzeichnis /users das so genannte Dateisystempaging. Betrachtet man den Inhalt von /users, findet man dort ein Verzeichnis namens paging, in dem mehrere Dateien liegen, die zum Swappen verwendet werden. Die Parameter geben übrigens an, dass mindestens 3840 Blöcke verwendet werden sollen. Das Limit (lim=) beträgt 12.800 Blöcke. Alle installierten Swapbereiche bekommen eine Priorität. Bei der Anforderung von virtuellem Speicher wird mit der geringsten Priorität begonnen. Da auf diesem System auch eine Swap-Partition mit der Priorität 1 ist, wird zuerst diese ausgeschöpft, bevor auf die Datei zugegriffen wird.



« Dateisystem erstellen | Festplatten | Einbinden eines Dateisystems: mount »
 
 Zum Katalog
Zum Katalog
Wie werde ich UNIX-Guru?
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 UNIX/Linux

PHP 4-Workshop

Einstieg in Python

Perl fürs Web

MySQL 4

GNOME 2.0
 Empfehlung

Einstieg in XML
 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
Info

 MyGalileo
Der Service für registrierte Leser:
Zu MyGalileo
Info



Copyright © Galileo Press GmbH 2003
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.
[Galileo Computing]

Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de