BEZEICHNUNG¶
swapon, swapoff - Auslagerung von Hauptspeicherbereichen (Swapping) auf ein
Gerät oder in eine Datei starten/beenden
ÜBERSICHT¶
#include <unistd.h>
#include <asm/page.h> /* zum Bestimmen von PAGE_SIZE */
#include <sys/swap.h>
intswapon(constchar*pfad,intswap_schalter);
intswapoff(constchar*pfad);
BESCHREIBUNG¶
swapon weist den Auslagerungsbereich für Hauptspeicherbereiche der
Datei oder dem blockorientierten Gerät zu, das in
pfad festgelegt
wurde.
swapoff beendet das Auslagern von Hauptspeicherbereichen in der
Datei oder dem blockorientierten Gerät, das in
pfad festgelegt
wurde.
Falls der Schalter
SWAP_FLAG_PREFER im
swapon()-Argument
swap_schalter angegeben wurde, hat der neue Auslagerungsbereich
für Hauptspeicherbereiche eine höhere Priorität als der
vorgegebene. Die Priorität ist in
swap_schalter kodiert als:
(prio << SWAP_FLAG_PRIO_SHIFT) & SWAP_FLAG_PRIO_MASK
Falls der Schalter
SWAP_FLAG_DISCARD im
swapon()-Argument
swap_schalter angegeben wurde, werden freigegebene Auslagerungsseiten
für Hauptspeicherbereiche verworfen, bevor sie erneut benutzt werden,
falls das Gerät mit dem Auslagerungsbereich für
Hauptspeicherbereiche die Aktionen zum Verwerfen oder Kürzen
(»discard« und »trim«) unterstützt. (Dies könnte
die Leistung auf einigen Festspeichergeräten (SSD) verbessern, was aber
oft nicht der Fall ist.) Siehe auch die ANMERKUNGEN.
Diese Funktionen können nur von einem privilegierten Prozess (einem, der
über die
CAP_SYS_ADMIN-Fähigkeit verfügt) benutzt
werden.
Priorität¶
Jeder Auslagerungsbereich für Hauptspeicherbereiche hat eine
Priorität, hoch oder niedrig. Die Standardpriorität ist niedrig.
Innerhalb der Bereiche niedriger Priorität erhalten neuere Bereiche eine
niedrigere Priorität als ältere.
Alle mit
swap_schalter gesetzten Prioritäten sind hohe
Prioritäten und höher als die Vorgabe. Sie können einen
beliebigen durch den Aufrufenden gewählten nicht-negativen Wert haben.
Höhere Zahlen entsprechen höheren Prioritäten.
Auslagerungsseiten von Hauptspeicherbereichen werden nach Priorität aus den
Bereichen reserviert, die mit der höchsten Priorität zuerst. Bei
Bereichen unterschiedlicher Priorität werden die mit der höheren
Priorität zuerst ausgeschöpt, bevor Bereiche mit niedriger
Priorität genutzt werden. Haben zwei oder mehr Bereiche die gleiche
Priorität und diese ist die höchste verfügbare, dann werden die
Seiten reihum nacheinander reserviert.
Ab Linux 1.3.6 befolgt der Kernel diese Regeln gewöhnlich, aber es gibt
auch Ausnahmen.
RÜCKGABEWERT¶
Bei Erfolg wird Null zurückgegeben. Bei einem Fehler wird -1
zurückgegeben und
errno entsprechend gesetzt.
FEHLER¶
- EBUSY
- (Für swapon()) Der angegebene pfad wird
bereits als Auslagerungsbereich für Hauptspeicherbereiche
benutzt.
- EINVAL
- Die Datei pfad existiert, zeigt aber weder auf eine
reguläre Datei noch auf ein blockorientiertes Gerät. Oder der
für swapon() angegebene Pfad enthält keine gültige
Signatur für die Auslagerung von Hauptspeicherbereichen oder befindet
sich auf einen Dateisystem im Speicher, wie Tmpfs. Oder der pfad
für swapoff() ist derzeit nicht in einem Auslagerungsbereich
von Hauptspeicherbereichen.
- ENFILE
- Die Systembegrenzung der Gesamtzahl offener Dateien wurde
erreicht.
- ENOENT
- Die Datei pfad existiert nicht.
- ENOMEM
- Das System verfügt nicht über ausreichenden
Speicher, um das Auslagern von Hauptspeicherbereichen zu starten.
- EPERM
- Der Aufrufende verfügt nicht über die
Fähigkeit CAP_SYS_ADMIN. Alternativ wird die maximale Anzahl
der Auslagerungsdateien für Hauptspeicherbereiche benutzt; Lesen Sie
die folgenden ANMERKUNGEN.
Diese Funktionen sind Linux-spezifisch und sollte nicht in Programmen benutzt
werden, die portabel gehalten werden sollen. Das zweite
swap_schalter-Argument wurde mit Linux 1.3.2 eingeführt.
ANMERKUNGEN¶
Die Partition oder der Pfad müssen mit
mkswap(8) vorbereitet werden.
Es gibt eine Obergrenze für die Anzahl der benutzbaren Auslagerungsdateien
von Hauptspeicherbereichen, die in der Kernel-Konstante
MAX_SWAPFILES
definiert wird. Vor Kernel 2.4.10 hatte
MAX_SWAPFILES den Wert 8; seit
Kernel 2.4.10 hat sie den Wert 32. Seit Kernel 2.6.18 ist die Grenze um zwei
herabgesetzt (daher: 30) falls der Kernel mit der Option
CONFIG_MIGRATION erstellt wurde (die zwei Einträge in der
Auslagerungstabelle von Hauptspeicherbereichen für die
Seiten-Migrationsfunktionen von
mbind(2) und
migrate_pages(2)
reserviert). Seit Kernel 2.6.32 wird die Grenze ferner um eins herabgesetzt,
falls der Kernel mit der Option
CONFIG_MEMORY_FAILURE erstellt wurde.
Verwerfen von Auslagerungsseiten von Hauptspeicherbereichen wurde in Kernel
2.6.29 eingeführt, dann wurde es in Kernel 2.6.36 vom Schalter
SWAP_FLAG_DISCARD abhängig gemacht, wodurch immer noch die ganze
Auslagerung von Hauptspeicherbereichen beim Aufruf von
swapon()
verworfen (»discard«) wird, sogar, wenn das Schalter-Bit nicht
gesetzt ist.
SIEHE AUCH¶
mkswap(8),
swapoff(8),
swapon(8)
KOLOPHON¶
Diese Seite ist Teil der Veröffentlichung 3.42 des Projekts Linux-
man-pages. Eine Beschreibung des Projekts und Informationen, wie Fehler
gemeldet werden können, finden sich unter
http://www.kernel.org/doc/man-pages/.
ÜBERSETZUNG¶
Die deutsche Übersetzung dieser Handbuchseite wurde von Ralf Demmer
<rdemmer@rdemmer.de> und Chris Leick <c.leick@vollbio.de>
erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public
License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird
KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken
Sie bitte eine E-Mail an <debian-l10n-german@lists.debian.org>.