Swap (Magyar) - ArchWiki

Jump to content

# Swap (Magyar)

From ArchWiki
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/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:

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

- In defence of swap: common misconceptions

Category:

- File systems (Magyar)

Swap (Magyar)
Add topic