![]() |
|
Linux - Wegweiser zur Installation & Konfiguration, 3. AuflageOnline-VersionBitte denken Sie daran: Sie dürfen zwar die Online-Version ausdrucken, aber diesen Druck nicht fotokopieren oder verkaufen. 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. Wünschen Sie mehr Informationen zu der gedruckten Version des Buches Linux - Wegweiser zur Installation & Konfiguration oder wollen Sie es bestellen, dann klicken Sie bitte hier.
|
Swap-Space (Auslagerungsspeicher) ist die Bezeichnung für Speicherplatz, der auf der Festplatte eingerichtet wird, um scheinbar den verfügbaren Arbeitsspeicher des Systems zu vergrößern. Unter Linux wird der Swap-Space benutzt, um das Paging zu ermöglichen. Paging bedeutet, daß Memory-Pages (Speicherseiten; eine Seite hat auf Intel-Systemen in der Regel 4096 Bytes, auf anderen Architekturen kann das anders sein) auf die Festplatte ausgelagert werden, wenn der physikalisch vorhandene Speicher knapp wird. Bei Bedarf werden die ausgelagerten Speicherseiten wieder in den physikalischen Arbeitsspeicher zurückgeladen. Der ganze Vorgang ist eine ziemlich komplizierte Angelegenheit, aber für bestimmte Zwecke ist das Paging optimiert worden. Das Subsystem, das unter Linux den virtuellen Speicher verwaltet, macht es möglich, daß mehrere aktive Programme die Memory-Pages gemeinsam nutzen. Wenn Sie zum Beispiel mehrere Kopien von Emacs gleichzeitig aufgerufen haben, steht trotzdem nur eine Kopie davon im Arbeitsspeicher. Außerdem besteht auf Textseiten (Seiten mit Programmcode, nicht Daten) normalerweise nur Lesezugriff, so daß diese Seiten beim Auslagern nicht auf die Festplatte geschrieben werden. Solche Seiten werden statt dessen sofort aus dem Hauptspeicher entfernt und bei Bedarf aus der ursprünglichen ausführbaren Datei erneut gelesen.
Natürlich kann Swap-Space einen Mangel an physikalischem RAM nicht vollständig ausgleichen. Der Zugriff auf eine Festplatte ist um ein Mehrfaches langsamer als der RAM-Zugriff. Die Auslagerungsdatei wird deshalb in erster Linie dafür benutzt, mehrere Programme gleichzeitig laufen zu lassen, die nicht zusammen im physikalischen RAM untergebracht werden könnten. Wenn Sie schnell zwischen diesen Programmen hin- und herwechseln, werden Sie feststellen, daß es beim Auslagern und Zurücklesen von Speicherseiten zu Verzögerungen kommt.
Auf jeden Fall unterstützt Linux zwei Arten von Swap-Space: in Form einer eigenen Partition oder als eine Datei innerhalb der existierenden Dateisysteme. Sie können bis zu 16 Swap-Bereiche einrichten, wobei jeder Bereich bis zu 128 Megabytes groß sein darf (auch diese Werte können auf Nicht-Intel-Systemen anders sein). Den Mathe-Genies da draußen dürfte jetzt klar sein, daß somit bis zu zwei Gigabytes an Swap-Space möglich sind. (Wenn jemand schon einmal versucht hat, soviel Swap-Space zu benutzen, würden wir gerne davon erfahren - egal, ob Sie ein Mathe-Genie sind oder nicht.)
Die Benutzung einer Swap-Partition kann die Leistung des Systems verbessern, weil die Blöcke auf der Festplatte garantiert hintereinander stehen. Bei einer Swap-Datei dagegen kann es sein, daß die Blöcke über das ganze Dateisystem verteilt sind, was zu ernsten Leistungseinbußen führen kann. Viele Leute benutzen eine Datei, wenn sie nur vorübergehend mehr Swap-Space brauchen - etwa weil das System ins Schwitzen gerät, wenn physikalisches RAM und Swap-Space knapp werden. Swap-Dateien sind eine geeignete Methode, bei Bedarf den vorhandenen Swap-Bereich zu vergrößern.
Fast alle Linux-Systeme benutzen die eine oder andere Art von Swap-Space, meistens eine einzelne Swap-Partition. In Kapitel 3 haben wir gezeigt, wie Sie während der Installation eine Swap-Partition einrichten können. In diesem Abschnitt wollen wir beschreiben, wie Sie Swap-Dateien und -Partitionen hinzufügen und löschen. Falls Sie bereits einen Swap-Bereich angelegt haben und damit zufrieden sind, ist dieser Abschnitt für Sie wahrscheinlich weniger interessant. |
Wieviel Swap-Space haben Sie angelegt? Der Befehl free gibt Ihnen Auskunft über den Systemspeicher:
Alle diese Werte geben die Anzahl von 1024-Byte-Blöcken an. Wir sehen ein System mit 127 888 Blöcken an physikalischem RAM (etwa 127 MB), von denen derzeit 126 744 Blöcke belegt sind (etwa 126 MB). Dieses System hat in Wirklichkeit mehr physikalisches RAM, als in der Spalte »total« angezeigt wird. Dieser Wert enthält nicht den Speicher, den der Kernel für verschiedene eigene Zwecke benutzt.
Die Spalte »shared« zeigt an, wieviel physikalischer Speicher von den vorhandenen Prozessen gemeinsam genutzt wird. Wir sehen, daß dies etwa 27 Megabytes sind, was eine sehr gute Ausnutzung des Speichers anzeigt. Die Spalte »buffers« zeigt, wieviel Speicher der Kernel als Cache nutzt. Dieser Cache (wir sind im vorigen Abschnitt bereits kurz darauf eingegangen) wird benutzt, um Zugriffe auf die Festplatte zu beschleunigen, indem Schreib- und Leseanforderungen direkt aus dem Speicher bedient werden. Die Größe des Cache ändert sich je nach Benutzung des Speichers durch das System; der Cache wird bei Bedarf von Anwendungsprogrammen angefordert. Das bedeutet, daß nicht die gesamten 126 MB des benutzten Systemspeichers (wenn auch das meiste) von Anwendungen belegt werden.
Weil der Speicher, der für Buffer und den Cache verwendet wird, leicht wieder den Applikationen zur Verfügung gestellt werden kann, ist die zweite Zeile (-/+ buffers/cache) ein Hinweis darauf, wieviel Speicher von den Applikationen tatsächlich verwendet wird (die Spalte »used«) oder diesen zur Verfügung steht (die Spalte »free«). Die Summe des Speichers, die von den Buffern und dem Cache in der ersten Zeile als belegt gemeldet wird, wird vom gesamten benutzten Speicher abgezogen und zum gesamten freien Speicher hinzugezählt, was die beiden Werte in der zweiten Zeile ergibt.
Unter den Werten für physikalisches RAM wird die gesamte Größe des Swap-Bereichs angezeigt, in diesem Fall 130 748 Blöcke (etwa 128 Megabytes). In diesem Beispiel wird nur sehr wenig Swap-Space benutzt - es ist reichlich physikalisches RAM vorhanden. Wenn weitere Anwendungen gestartet würden, käme zuerst ein Teil des Cache-Bereichs zum Einsatz. Im allgemeinen wird der Swap-Space als letzte Instanz aktiviert, wenn das System keine andere Möglichkeit mehr hat, sich physikalischen Speicher anzueignen.
Beachten Sie, daß die Menge an Swap-Space, die free meldet, etwas kleiner ist als die Größe der Swap-Partitionen und -Dateien insgesamt. Das liegt daran, daß einige Blöcke in jedem Swap-Bereich benutzt werden, um die Lage der einzelnen Speicherseiten zu vermerken. Diese Informationen sollten recht wenig Platz belegen; nicht mehr als einige Kilobytes pro Swap-Bereich.
Wenn Sie vorhaben, einen Swap-Bereich anzulegen, können Sie mit dem Befehl df nachsehen, wieviel Platz in den verschiedenen Dateisystemen noch vorhanden ist. df zeigt eine Liste der Dateisysteme samt ihrer Größe und prozentualen Belegung an.
Der erste Schritt zur Erweiterung des Swap-Bereichs ist das Anlegen einer Datei oder Partition, die den Swap-Bereich aufnimmt. Wenn Sie eine zusätzliche Swap-Partition einrichten möchten, können Sie das mit fdisk erledigen, wie wir das im Abschnitt »Linux-Partitionen anlegen« in Kapitel 3 beschrieben haben. |
Zum Anlegen einer Swap-Datei müssen Sie eine Datei öffnen und so viele Bytes hineinschreiben, wie die Swap-Datei groß sein soll. Eine einfache Methode hierfür ist der Befehl dd. Wenn Sie zum Beispiel eine acht Megabytes große Swap-Datei anlegen möchten, geben Sie ein:
Damit werden 8192 Datenblöcke von /dev/zero in die Datei /swap geschrieben. (/dev/zero ist ein spezieller Gerätename, der bei Lesezugriffen immer Nullbytes liefert; es ist so etwas wie die Umkehrung von /dev/null.) Nach dem Anlegen der Datei sollten Sie mit sync vorsichtshalber die Dateisysteme wieder synchronisieren.
Sobald eine Swap-Datei oder -Partition eingerichtet ist, können Sie mit dem Befehl mkswap diesen Bereich »formatieren«. Wie wir bereits im Abschnitt »Den Swap-Bereich anlegen« in Kapitel 3 beschrieben haben, hat der Befehl mkswap folgendes Format: |
Dabei ist gerätename der Name der Swap-Partition oder -Datei, und größe ist die Größe des Swap-Bereichs in Blöcken. Normalerweise müssen Sie das nicht angeben, da mkswap die Partitionsgröße selbständig herausfinden kann. Der Schalter -c ist optional und bewirkt, daß der Swap-Bereich bei der Formatierung auf fehlerhafte Blöcke untersucht wird.
Für die im vorigen Beispiel eingerichtete Swap-Datei würden Sie also
eingeben. Wenn es sich dagegen um eine Swap-Partition handelt, würden Sie statt dessen den Namen der Partition angeben (zum Beispiel /dev/hda3) und die Größe, ebenfalls in Blöcken.
Nach dem Einrichten einer Swap-Datei mit mkswap sollten Sie immer sync aufrufen, damit die Formatierungsinformationen auf jeden Fall physikalisch in die neue Swap-Datei geschrieben werden. Nach dem Formatieren einer Swap-Partition ist der Aufruf von sync nicht notwendig.
Damit Sie den neuen Swap-Bereich auch benutzen können, müssen Sie ihn noch mit dem Befehl swapon initialisieren. Nach dem Einrichten der oben gezeigten Swap-Datei und dem Aufruf von mkswap und sync würden wir mit
die neue Swap-Datei der Gesamtgröße an Swap-Bereich hinzufügen; mit dem Befehl free läßt sich das überprüfen. Eine neue Swap-Partition können Sie mit
initialisieren, wenn die neue Swap-Partition auf /dev/hda3 liegt.
Wenn Sie eine Swap-Datei (im Gegensatz zu einer Swap-Partition) benutzen, müssen Sie vorher die Zugriffsrechte ändern:
Ähnlich wie Dateisysteme werden auch Swap-Bereiche beim Booten initialisiert, und zwar mit dem Befehl swapon -a in einer der Startdateien (in der Regel /etc/ rc.d/rc.sysinit). Dieser Befehl liest die Datei /etc/fstab, die, wie Sie sich vielleicht aus dem Abschnitt »Dateisysteme aufsetzen« noch erinnern, Informationen zu den Dateisystemen und Swap-Bereichen enthält. Alle Einträge in /etc/fstab mit dem Wert sw im Optionenfeld werden mit swapon -a initialisiert.
Wenn /etc/fstab also folgende Einträge enthält:
dann werden die beiden Swap-Bereiche /dev/hda3 und /swap beim Booten initialisiert. Für jeden neu angelegten Swap-Bereich sollten Sie in /etc/fstab einen Eintrag hinzufügen.
Wie so oft ist auch hier das Entfernen einfacher als das Hinzufügen. Wenn Sie einen Swap-Bereich entfernen möchten, geben Sie einfach ein:
Dabei gibt gerätename den Namen der zu entfernenden Swap-Partition oder -Datei an. Wenn Sie zum Beispiel /dev/hda3 nicht mehr als Swap-Bereich nutzen möchten, geben Sie ein:
Wenn Sie eine Swap-Datei löschen möchten, entfernen Sie die Datei einfach mit dem Befehl rm, und zwar nachdem Sie swapoff aufgerufen haben. Löschen Sie niemals eine Swap-Datei, ohne sie vorher zu deaktivieren; das kann schlimme Folgen haben.
Sobald Sie eine Swap-Partition mit swapoff deaktiviert haben, können Sie diese Partition nach Belieben weiterbenutzen - sie zum Beispiel mit fdisk entfernen oder was auch immer.
Sie sollten auch einen eventuell vorhandenen Eintrag in /etc/fstab für diesen Swap-Bereich entfernen, weil Sie sonst beim nächsten Booten Fehlermeldungen erhalten, wenn der Swap-Bereich nicht gefunden wird.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Weitere Informationen zum Linux - Wegweiser zur Installation & Konfiguration
Weitere Online-Bücher & Probekapitel finden Sie in unserem Online Book Center
© 2000, O'Reilly Verlag