Jump to content

Swap (Magyar)

From ArchWiki
Fordítás állapota: Ez a cikk az angol Swap című cikk 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ű cikkben történtek újabb módosítások, akkor Ön segíthet hozzászinkronizálni az angolhoz ezt a magyar nyelvű fordítást.

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/sdxy
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/sdxy

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:

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/sdxy

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