SWAPON(2)

BEZEICHNUNG
swapon, swapoff - Auslagerung von Hauptspeicherbereichen (Swapping) auf ein Gerät oder in eine Datei starten/beenden

BIBLIOTHEK
Standard-C-Bibliothek (libc, -lc)

ÜBERSICHT
#include <sys/swap.h>

int swapon(const char *pfad, int swap_schalter);
int swapoff(const char *pfad);

BESCHREIBUNG
swapon weist den Auslagerungsbereich für Hauptspeicherbereiche der Datei oder dem blockorientierten Gerät zu, das in pfad angegeben wurde. swapoff beendet das Auslagern von Hauptspeicherbereichen in der Datei oder dem blockorientierten Gerät, das in pfad angegeben 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-Capability 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öpft, 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 gesetzt, um den Fehler anzuzeigen.

FEHLER

EBUSY
    (Für swapon()) Der angegebene pfad wird bereits als Auslagerungsbereich für Hauptspeicherbereiche benutzt.

EINVAL
    Die Datei pfad existiert, bezieht sich aber weder auf eine normale Datei noch auf ein Blockgerät;

EINVAL
    (swapon()) Der angegebene Pfad enthält keine gültige Auslagerungssignatur oder befindet sich in einem speicherinternen Dateisystem wie beispielsweise tmpfs(5).

EINVAL (seit Linux 3.4)
    (swapon()) Ein unzulässiger Schalter wurde in swapflags angegeben.

EINVAL
    (swapoff()) pfad ist derzeit kein Auslagerungsbereich.

ENFILE
    Die systemweite Beschränkung für die 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 Capability CAP_SYS_ADMIN. Alternativ wird die maximale Anzahl der Auslagerungsdateien für Hauptspeicherbereiche benutzt; Lesen Sie die folgenden ANMERKUNGEN.

STANDARDS
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.

There is an upper limit on the number of swap files that may be used, defined by the kernel constant MAX_SWAPFILES. Before kernel 2.4.10, MAX_SWAPFILES has the value 8; since kernel 2.4.10, it has the value 32. Since kernel 2.6.18, the limit is decreased by 2 (thus: 30) if the kernel is built with the CONFIG_MIGRATION option (which reserves two swap table entries for the page migration features of mbind(2) and migrate_pages(2)). Since kernel 2.6.32, the limit is further decreased by 1 if the kernel is built with the CONFIG_MEMORY_FAILURE option. Since kernel 5.14, the limit is further decreased by 4 if the kernel is built with the CONFIG_DEVICE_PRIVATE option.

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)

ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Ralf Demmer <rdemmer@rdemmer.de>, Chris Leick <c.leick@vollbio.de> und Mario Blättermann <mario.blaettermann@gmail.com> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 (https://www.gnu.org/licenses/gpl-3.0.html) 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 die Mailingliste der Übersetzer (debian-l10n-german@lists.debian.org).