Swap (Magyar)

Fordítás állapota:
Ez az oldal az angol
Swap
című oldal magyar nyelvre lefordított változata. Utolsó fordítás dátuma: 2026.01.31. Amennyiben a lefordítás időpontja óta az angol nyelvű oldalon történtek újabb
módosítások
, akkor Ön segíthet hozzászinkronizálni az angolhoz ezt a magyar nyelvű fordítást.
További oldalak az adott témakörben
fstab (Magyar)
Hibernation (Magyar)
zswap (Magyar)
zram (Magyar)
Swap on video ram (Magyar)
ZFS#Swap volume (Magyar)
dm-crypt/Swap encryption (Magyar)
Fordítói megjegyzés: A cserehelyet szokták "swap terület", "swap space", "swap hely", "swap partíció", "swap fájl" elnevezéssel is említeni a magyar nyelvben az informatikában.
Ez az oldal bevezetést nyújt a GNU/Linux-alapú operációs rendszereken történő
cserehely és lapozás
témakörbe. Bemutatja a cserepartíciók és cserefájlok létrehozását és aktiválását.
Mindent a Linux cserehelyről
című cikkből idézve:
..."A Linux a fizikai RAM memóriát (véletlen elérésű memóriát) lapoknak nevezett memóriadarabokra osztja fel. A csere (swapping) az a folyamat, amikor egy ilyen memóriadarab  (memórialap) átmásolódik a merevlemezen előre beállított területre, amelyet cserehelynek (swap space) szoktak nevezni, hogy ezáltal a kernel felszabadítsa azt a memórialapot (memóriaterületet) a számítógép memóriájában. A számítógép fizikai memóriája és a cserehely együttes mérete adja a rendelkezésre álló virtuális memória mennyiségét."...
A cserehely támogatását a Linux kernel és a felhasználói térben futó segédprogramok biztosítják a
util-linux
szoftvercsomagból.
Swap terület
A swap terület létezhet az számítógép merevlemezén partíció formájában, illetve létezhet a partíción belül a fájlrendszeren egy különálló fájl formájában is. A felhasználók létrehozhatnak swap területet az operációs rendszer telepítése során vagy bármikor később, amikor a létrehozásra szükség van. A swap terület kettő célra használható: A virtuális memóriakapacitás kiterjesztése a telepített fizikai memóriakapacitás (RAM) fölé (magyarul, szegény ember számítógépében a fizikai memória méretének a megnövelése, úgy, hogy hozzáadunk még memóriát a géphez ami valójában a merevlemez). Valamint, használható a virtuális memóriakapacitás kiterjesztése a
merevlemezre történő számítógép-felfüggesztés
támogatása miatt.
Az, hogy hasznos-e a virtuális memória kiterjesztése swap területtel, a számítógépbe telepített fizikai memória mennyiségétől függ. Ha a fizikai memória mennyisége kisebb, mint az összes kívánt program futtatásához szükséges memória, akkor
előnyös lehet
a swap terület engedélyezése. Ez a megoldás elkerüli a
memóriahiányos állapotokat
, amikor a Linux kernel OOM killer mechanizmusa a folyamatok leállításával automatikusan megpróbálja felszabadítani a memóriát. A virtuális memória mennyiségének a kívánt szintre történő megnövelése érdekében adjuk hozzá a szükséges különbséget (vagy többet) swap területként.
A swap terület használatának legnagyobb hátránya memóriahiány esetén az alacsonyabb gépteljesítmény (Magyarul, a számítógép lassabb lesz működéskor, amikor a swap területet is használja majd, mert maga a merevlemez -amin rajta van a swap- lassabb írási/olvasási sebességre képes mint a fizikai RAM). Tekintse meg a
#Teljesítmény
című szakaszt a részletekért. Az elmondottak tudatában a swap terület engedélyezése személyes preferencia kérdése: Egyes felhasználók inkább a programok leállítását részesítik előnyben a swap terület engedélyezése helyett, míg más felhasználók inkább engedélyezik a swap területet és elfogadják a lassabb számítógépet, amikor a fizikai memória megtelik adatokkal és a számítógép elkezdi használni a swap területet.
A swap terület állapotának ellenőrzése érdekében futtassa a következő parancsot:
$ swapon --show
Illetve, a fizikai memória és a swap terület használatának megjelenítése érdekében futtassa a következő parancsot:
$ free -h
Swap partíció
A legtöbb GNU/Linux
particionáló szoftverrel
létrehozható a
swap partíció
. GPT partícióstáblázat esetén a swap partíciókat a
0657FD6D-A4AB-43C4-84E5-0933C84B4F4F
GUID partíciótípus jelöli (
gdisk
esetében
8200
típus,
fdisk
esetében
swap
típus)). Az MBR partícióstáblázat esetén a swap partíciókat a
82
típusazonosító jelöli.
Egy partíció Linux swap területként való beállításához parancssorban az
mkswap(8)
parancsot kell használni. Például:
# mkswap /dev/sd
xy
Figyelmeztetés
A fenti parancs futtatása azt eredményezi, hogy a parancsban megadott partíción véglegesen törlődni fog a összes adat.
A lapozóterületet nem csak egyszerűen létre kell hozni, hanem a létrehozás után azt engedélyezni is kell a lapozás műveletének elindítása miatt. Tehát, annak érdekében, hogy a készüléken engedélyezve is legyen a lapozás, futtassa a következő parancsot:
# swapon /dev/sd
xy
Tekintsem meg a
swapon(8)
parancs opcióinak a szintaxisát.
Engedélyezés a számítógép bootolásakor
A bootolásakor történő swap partíció engedélyezéshez tegye a következőket:
Használja a
systemd#GPT partíció automatikus felcsatolása a futó fájlrendszerbe
című leírást.
Vagy adjon hozzá egy bejegyzést a
/etc/fstab
fájlhoz. Például:
UUID=
eszküz_UUID_azonosítója
none swap defaults 0 0
Ahol az
eszküz_UUID_azonosítója
a swap terület
UUID
azonosítója.
Tekintse meg az
fstab
fájlnak a szintaxisát, valamint a
systemd#Fájlrendszer felcsatolása a futó rendszerben systemd.mount használatával
című leírást.
Swap terület kikapcsolása
Adott swap terület deaktiválása érdekében futtassa a következő parancsot:
# swapoff /dev/sd
xy
Alternatív megoldásként Ön használhatja a
-a
kapcsolót az összes swap terület deaktiválása érdekében.
Mivel a swap területet a systemd init rendszer kezeli, ezért a következő rendszerindításkor a swap terület ismét aktiválódik majd. Annak végleges letiltása érdekében, hogy a detektált swap terület automatikusan ismét aktiválódjon, Ön futtassa a
systemctl --type swap
parancsot, hogy megtalálja a felelős
.swap
unit fájlt, majd
maszkolja
el a megtalált unit fájlt az operációs rendszer láthatósága elől.
Swap fájl
Egy teljes swap partíció létrehozásának alternatívájaként egy swap fájl létrehozása lehetővé teszi a fájlméret menet közbeni módosítást, és könnyebben el is távolítható a swap fájl a swap partícióval szemben. Ez különösen akkor lehet kívánatos, amikor kevés a szabad terület az adathordozón (például egy közepes méretű SSD esetén).
Fájlrendszer
Támogatja-e a swap fájlokat?
Bcachefs
Nem
Btrfs
Igen
F2FS
Igen
ext4
Igen
JFS
Igen
NILFS2
Nem
NTFS3
Igen
ReiserFS
Igen
XFS
Igen
ZFS
Nem
Swap fájl létrehozása
Megjegyzés
A
Btrfs
fájlrendszer esetében kövesse a
Btrfs#Swap fájl
című részben leírt eljárást az alábbi lépések helyett.
Használja az
mkswap(8)
parancsot egy, az Ön által tetszőlegesen választott méretű swap fájl létrehozása érdekében. (Tanácsért tekintse meg a
Partitioning#Swap
című leírást). Például egy 4 GiB méretű swap fájl létrehozása érdekében a következőt kell futtatni:
# mkswap -U clear --size 4G --file /swapfile
Aktiválja a létrehozott swap fájlt:
# swapon /swapfile
Végül az fstab szöveges fájlban adjon hozzá egy bejegyzést a swap fájl számára:
/etc/fstab
/swapfile none swap defaults 0 0
Az fstab fájlnak az alternatívájaként létrehozható egy swap unit (Részletekért tekintse meg a
systemd.swap(5)
man súgót.) :
/etc/systemd/system/swapfile.swap
[Swap]
What=/swapfile

[Install]
WantedBy=swap.target
Hajtsa végre a
szolgáltatás újraindítása
műveletet, majd
engedélyezze
a
swapfile.swap
unit fájlt.
További információkért tekintse meg az
fstab#Használat
című leírást.
Megjegyzés
A swap fájlt a fájlrendszeren belüli a helyével kell megadni, nem pedig az UUID vagy a LABEL alapján.
Swap fájl eltávolítása
Egy swap fájl eltávolítása érdekében először magát a swap fájlt ki kell kapcsolni, majd utána eltávolítható:
# swapoff /swapfile
# rm -f /swapfile
Végül távolítsd el a vonatkozó bejegyzést az
/etc/fstab
fájlból.
Swap titkosítása
Tekintse meg a
dm-crypt/Swap encryption
című leírást.
Teljesítmény
A swap műveletek általában lényegesen lassabbak, mint az adatok közvetlen elérése a RAM memóriában. Azonban a swap teljes kikapcsolása a teljesítmény javítása érdekében néha teljesítményromláshoz vezethet. Ha a számítógépben nincs elegendő fizikai memória minden adat tárolására, akkor a swap nélküli működés kevesebb memóriát hagy a fájlrendszer gyorsítótárak számára, ami gyakoribb és költségesebb lemezhasználatot okoz.
A swap értékek módosíthatók a teljesítmény javítása érdekében:
Swappiness
Amikor a memóriahasználat elér egy bizonyos küszöböt, akkor a kernel elkezdi vizsgálni az aktív memóriát, és megnézi, hogy mit tud felszabadítani. A fájladatokat ki lehet írni a fájlrendszerre (ha megváltoztak), majd ki lehet tölteni a memóriából és később újra be lehet majd tölteni a memóriába. Más adatokat ki kell írni a swap területre, mielőtt ki lehetne tölteni a memóriából.
A
swappiness
sysctl
paraméter a kernelnek azt a preferenciáját jelenti, hogy inkább a swap területre írjon, mint fájlokba. Értéke 0 és 200 között lehet, és az alapértelmezett értéke 60. Alacsony érték esetén a kernel inkább a megnyitott fájlok felszabadítását részesíti előnyben, magas érték esetén a kernel inkább a swap terület használatára törekszik, míg 100-as érték esetén az IO költséget egyenlőnek tekinti.
Megjegyzés
Gyakori tévhit, hogy a swappiness befolyásolja a memória küszöbértékét vagy megakadályozza a swap terület használatát, valójában azonban csak azt a preferenciát határozza meg, hogy a kernel inkább a fájllapok felszabadítását részesítse előnyben a swap helyett. Tekintse meg
ezt a cikket
a részletesebb magyarázatért, vagy a
kernel forráskódot
, ahol használva van.
A jelenlegi swappiness érték ellenőrzése érdekében parancssorból futtassa a következő parancsot:
$ sysctl vm.swappiness
Alternatív megoldásként a
/proc/sys/vm/swappiness
fájl olvasható, hogy Ön megkapja a nyers egész értéket.
A swappiness érték ideiglenes beállítása érdekében futtassa a következő parancsot:
# sysctl -w vm.swappiness=35
A swappiness érték végleges beállítása érdekében hozzon létre egy
sysctl.d(5)
beállításfájlt. Például:
/etc/sysctl.d/99-swappiness.conf
vm.swappiness = 35
Annak érdekében, hogy a
rendszerbetöltő
beállítsa a swappiness értéket a kernelképfájl memóriába való betöltésekor, Ön adjon hozzá egy
kernel paramétert
, például
sysctl.vm.swappiness=35
.
A különböző swappiness-érték választásának okai lehetnek:
A felhasználók a swappiness érték csökkentését
javasolták
az asztali gépek reakciókészségének javítására. Az érv az, hogy mivel az észlelt teljesítményt (reakciókészséget) nagyrészt az határozza meg, hogy milyen gyorsan reagál egy program a felhasználói bemenetre, az anonim oldalaknak (programmemória) a RAM memóriában kell maradniuk, és a megnyitott fájlok felszabadítását kell előnyben részesíteni, még akkor is, ha ez bizonyos mértékben az
aktuális
teljesítmény rovására megy.
A
minimálisan észszerű swappiness
érték 1, mivel a 0 értékű swappiness szélsőséges elfogultságot okoz az anonim oldalak kiléptetésével szemben, megakadályozva, hogy azokat visszanyerés vagy swap céljából átvizsgálják, kivéve a memória versengés legszélsőségesebb eseteiben. Általában nem kívánatos, hogy a valóban nem használt anonim oldalak ne kerüljenek visszanyerésre.
A 100 vagy annál magasabb swappiness érték kívánatos (definíció szerint), amikor a swapolás IO költsége egyenlő vagy alacsonyabb, mint a fájlból való olvasás költsége. Ez előfordulhat, amikor
a swap nincs lemezzel alátámasztva
, különösen
zram
esetében. Ez akkor is megtörténhet, amikor a swap IO-t egy alacsonyabb költségű mechanizmus, például a
zswap
elfogja/gyorsítótárazza.
VFS gyorsítótár terhelés
Egy másik
sysctl
paraméter, amely befolyásolja a swap teljesítményét, a
vm.vfs_cache_pressure
, amely szabályozza a kernel hajlamát arra, hogy visszanyerje a VFS-gyorsítótárakhoz használt memóriát a pagecache és a swap rovására. Ennek az értéknek a növelése növeli a VFS-gyorsítótárak visszanyerésének ütemét. További információ arról, hogy pontosan mit csinál, megtalálható a
Linux kernel dokumentációban
.
Az alapértelmezett érték 100, ami azt jelzi, hogy a fájlrendszer-gyorsítótár körülbelül ugyanolyan fontos, mint a többi gyorsítótár, ezért nagyjából azonos súllyal kell őket visszanyerni. Asztali számítógépeken felmerült az az érv, hogy a
fájlrendszer-gyorsítótár fontosabb, mint a többi gyorsítótár
, mivel a fájlrendszer böngészési ideje jobban befolyásolja a műveletek késleltetését (észlelt reakcióképességet), mint a többi gyorsítótár, így javasolt értékként a 50 szerepel. Másrészt magasabb értéket
is javasoltak
, amikor a VFS-gyorsítótár sok apró fájl metainformációját tartalmazza, amelyeket később már nem érintenek. További információ a paraméter hangolásáról az
OpenSUSE hangolási útmutatóban
található (amely kísérletezést és a gyorsítótárak típusainak ellenőrzését ajánlja a
slaptop
segítségével).
Prioritás
Ha egynél több swap fájl vagy swap partíció van, akkor érdemes mindegyik swap területhez prioritási értéket (0-tól 32767-ig) hozzárendelni. A rendszer először a magasabb prioritású swap területeket fogja használni, mielőtt az alacsonyabb prioritásúakat igénybe venné. Például, ha van egy gyorsabb és egy lassabb lemez, akkor a gyorsabb eszközön lévő swap területhez magasabb prioritást kell hozzárendelni. A prioritások az
fstab
fájlban adhatóak meg a
pri
paraméter segítségével:
UUID=f9fe0b69-a280-415d-a03a-a32752370dee none swap defaults,pri=100 0 0
UUID=d7eb6062-01c8-4367-ac1d-3bf1167de8bb none swap defaults,pri=10  0 0
Valamint, megadható a
swapon
--priority
paraméterével is:
# swapon --priority 100 /dev/sda1
Ha kettő vagy több területnek azonos prioritása van, és ez a legmagasabb elérhető prioritás, akkor az oldalak közöttük körkörös (round-robin) módszerrel kerülnek kiosztásra.
Csíkozás
Nincs szükség
RAID
használatára a swap teljesítményének javítása érdekében. Maga a kernel képes több eszközön csíkozva kezelni a swap területet, ha egyszerűen ugyanazt a prioritást adja meg nekik a
/etc/fstab
fájlban. Részletekért tekintse meg a
The Software-RAID HOWTO
útmutatót.
Discard (a.k.a. trim)
Tekintse meg a
Solid state drive#swap
.
Tömörített blokkeszköz a RAM memóriában
Tekintse meg az
Improving performance#Swap on zram or zswap
című leírást.
Swap területet használata csak a hibernálás számára
Amennyiben Ön a swap területet kizárólag a hibernációs memóriaképfájl tárolására kívánja használni, akkor alkalmazhatja a
zswap
megoldást, és letilthatja annak writeback funkcióját, így nem történnek lemezírások a szokásos swap használat során. Tekintse meg a
Power management/Suspend and hibernate#A zswap visszaírás letiltása a swap terület csak hibernáláshoz való használatához
című leírást.
További olvasnivaló a témában
In defence of swap: common misconceptions