Provided by: manpages-de-dev_4.26.0-1_all 

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 den Arbeitsspeicher hat eine Priorität, hoch oder niedrig. Die
Standardpriorität ist niedrig. Innerhalb der Auslagerungsbereiche mit niedriger Priorität werden neue
Bereiche niedriger als bereits vorhandene Bereiche priorisiert.
Alle mit _swap_schalter_ gesetzten Prioritäten sind hoch, höher als der Standardwert. Beim Aufruf kann
die Priorität auf einen beliebigen nicht negativen Wert gesetzt werden. Höhere Werte bedeuten höhere
Prioritäten.
Auslagerungsbereiche werden gemäß ihrer Priorität reserviert, solche mit der höchsten Priorität als
erste. Ein höher priorisierter Bereich wird zunächst vollständig genutzt, bevor ein Bereich mit
niedrigerer Priorität verwendet wird. Sind mehrere Bereiche mit derselben Priorität definiert und sind
alle Bereiche mit höherer Priorität bereits vollständig genutzt, so werden neue Speicherseiten unter den
gleich priorisierten Bereichen reihum 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
Linux.
GESCHICHTE
Das Argument swapflags wurde in 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 Linux 2.4.10 hatte MAX_SWAPFILES den Wert
8; seit Linux 2.4.10 hat sie den Wert 32. Seit Linux 2.6.18 ist die Grenze um zwei herabgesetzt (daher
30), seit Linux 5.19 wird die Grenze um 3 herabgesetzt (daher: 29), 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 Linux 2.6.32 wird
die Grenze ferner um eins herabgesetzt, falls der Kernel mit der Option CONFIG_MEMORY_FAILURE erstellt
wurde. Seit Linux 5.14 ist die Beschränkung weiter auf 4 reduziert, falls der Kernel mit der Option
CONFIG_DEVICE_PRIVATE gebaut wurde. Seit Linux 5.19 ist die Grenze weiter um 1 herabgesetzt, falls der
Kernel mit der Option CONFIG_PTE_MARKER erstellt wurde.
Verwerfen von Auslagerungsseiten von Hauptspeicherbereichen wurde in Linux 2.6.29 eingeführt, dann wurde
es in Linux 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>, Mario Blättermann <mario.blaettermann@gmail.com>, Helge Kreutzmann
<debian@helgefjell.de> und Joachim Schnitter <joachim.schnitter@software-logistik.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 die
Mailingliste der Übersetzer.
Linux man-pages 6.9.1 2. Mai 2024 swapon(2)