SWAPON(2) Linux Programmeurs Handleiding SWAPON(2)

swapon, swapoff - start/stop swappen naar bestand/apparaat

#include <unistd.h>
#include <sys/swap.h>
int swapon(const char *path, int swapflags);
int swapoff(const char *path);

swapon() zet het swap gebied naar het bestand of blok apparaat opgegeven met pad. swapoff() stopt swappen naar het bestand of blok apparaat opgegeven met pad.

Als de SWAP_FLAG_PREFER vlag werd opgegeven in het swapon() swapvlaggen argument dan heeft het nieuwe swap gebied een hogere prioriteit dan standaard. De prioriteit is gecodeerd in swapvlaggen als:


(prio << SWAP_FLAG_PRIO_SHIFT) & SWAP_FLAG_PRIO_MASK

Als de SWAP_FLAG_DISCARD vlag werd opgegeven in het swapon() swapvlaggen argument, dan zullen vrijgemaakte swap pagina´s worden weggegooid voordat ze hergebruikt worden, mits het swap apparaat weggooien en bijsnijden ondersteund. (Dit kan prestaties verbeteren on sommige Solid State Devices, maar meestal niet). Zie ook NOTITIES.

Deze functies mogen alleen door een geprivilegieerd process (een dat de CAPS_SYS_ADMIN capaciteit heeft).

Elk swap gebied heeft een prioriteit, of hoog of laag. De standaard prioriteit is laag. Binnen de lage prioriteit gebieden hebben nieuwere gebieden nog lagere prioriteit dan oudere.

Alle prioriteiten gezet met swapvlaggen zijn hoge-prioriteit, hoger dan standaard. Ze mogen elke niet-negatieve waarde gekozen door de aanroeper. Hogere nummers betekenen hogere prioriteit.

Swap pagina's worden toegewezen van gebieden in prioriteit volgorde, hoge prioriteit eerst voor gebieden met verschillende prioriteiten: een hoger-prioriteit gebied wordt verbruikt voordat een lager-prioriteit gebied wordt gebruikt. Als twee of meer gebieden dezelfde prioriteit hebben, en als het de hoogste beschikbare prioriteit is, dan worden pagina's toegewezen op een rondedans basis tussen hen.

Vanaf Linux 1.3.6, volgt de kernel gewoonlijk deze regels, maar er zijn uitzonderingen.

Bij succes wordt nul teruggegeven. Bij falen wordt -1 teruggegeven en wordt errno overeenkomstig gezet.

EBUSY
(voor swapon()) Het opgegeven pad werd al gebruikt als swap gebied.
EINVAL
Wordt teruggegeven als pad bestaat, maar nóg een normale pad is, nóg een blok apparaat.
EINVAL
(swapon()) Het aangegeven pad bevat geen geldige swap signature of bevindt zich op een in-geheugen bestandssysteem zoals tmpfs(5).
EINVAL (sinds Linux 3.4)
(swapon()) Een ongeldige vlag werd in vlaggen opgegeven.
EINVAL
(swapoff()) pad is momenteel geen swap gebied.
ENFILE
De grens aan het aantal open bestanden van het systeem is bereikt.
ENOENT
Wordt teruggegeven als pad niet bestaat.
ENOMEM
Wordt teruggegeven als er onvoldoende geheugen is om swap te starten.
EPERM
De aanroeper heeft niet de CAP_SYS_ADMIN capaciteit. Mogelijk is ook het maximum aantal swap bestanden in gebruik; zie NOTITIES hieronder.

Deze functies zijn Linux-specifiek en zouden niet gebruikt moeten worden in programma's die overdraagbaar moeten zijn. Het tweede swapvlaggen argument werd ingevoerd in Linux 1.3.2.

Het schijf-gedeelte (partitie) moet voorbereid worden met mkswap(8).

Er is een bovengrens aan het aantal swap bestanden dat gebruikt kan worden, gedefinieerd door de kernel constante MAX_SWAPFILES. Vóór kernel 2.4.10, had MAX_SWAPFILES de waarde 8, vanaf kernel 2.4.10 heeft die de waarde 32. Vanaf kernel 2.6.18 is de limiet verlaagd met 2 (dus: 30) mits de kernel werd gebouwd met de CONFIG_MIGRATION optie (die reserveert twee swap tabel ingangen voor de pagina migratie eigenschappen van mbind(2) en migrate_pages(2)). Vanaf kernel 2.6.32, werd de limiet verder verlaagd met 1 als de kernel gebouwd werd met de CONFIG_MEMORY_FAILURE optie.

Weggooien van swap pagina´s werd geïntroduceerd in kernel 2.6.29, vervolgens werd het conditioneel gemaakt afhankelijk van de SWAP_FLAG_DISCARD vlag in kernel 2.6.36, die nog steeds het gehele swap gebied weggegooid wanneer swapon() wordt aangeroepen, zelfs als dat bit in de vlag niet werd gezet.

mkswap(8), swapoff(8), swapon(8)

Deze pagina is onderdeel van release 5.11 van het Linux man-pages-project. Een beschrijving van het project, informatie over het melden van bugs en de nieuwste versie van deze pagina zijn op https://www.kernel.org/doc/man-pages/ te vinden.

De Nederlandse vertaling van deze handleiding is geschreven door Jos Boersema <joshb@xs4all.nl>, Mario Blättermann <mario.blaettermann@gmail.com> en Luc Castermans <luc.castermans@gmail.com>

Deze vertaling is vrije documentatie; lees de GNU General Public License Version 3 of later over de Copyright-voorwaarden. Er is geen AANSPRAKELIJKHEID.

Indien U fouten in de vertaling van deze handleiding zou vinden, stuur een e-mail naar debian-l10n-dutch@lists.debian.org.

22 maart 2021 Linux