SWAP fájl készítése Linuxon

A Swap egy olyan lemezterület (vayg fájl), amelyet akkor használnak fel az operációs rendszerek, ha a fizikai RAM megtelik, vagy kezd megtelleni. Ha egy Linux rendszerben kezd elfogyni a memória, a kernel elkezdi az inaktív (régen vagy egyáltalán nem használt) memória területeket elhelyezni a SWAP területre, ezzel is memóriát szabadítva fel.

A SWAP terület lehet dedikált swap partíció vagy swap fájl. A legtöbb esetben, ha Linuxot futtatunk egy virtuális gépben, nincs jelen dedikált swap partíció, így az egyetlen lehetőség egy swap fájl létrehozása.

Az itt leírt módszer Ubuntu 20.04, CentOS és AlmaLinux 8-on volt tesztelve, de bármely modernt Linux-val menni fog.

Hogyan adjunk hozzá Swap fájlt

Kövesse az alábbi lépéseket 1 GB swap létrehozásához. Ha 1 GB helyett 2 GB-ot szeretne hozzáadni, cserélje ki az 1G-t 2G-ra, és vagy más értékre (pl. 512M vagy 4G).

Elsőként hozzuk létre SWAP területként használt fájlt:

sudo fallocate -l 1G /swapfile

Ha a fallocate parancs nincs telepítve a gépre, vagy “fallocate failed: Operation not supported” hibát kapunk, használhatjuk a dd parancsot is:

sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576

Csak a root felhasználónak kell tudnia írni és olvasni a swap fájlt. Állítsuk be a megfelelő fájl jogosultságokat:

sudo chmod 600 /swapfile

Az mkswap parancs segítségével formázzuk meg a swap fájlt:

sudo mkswap /swapfile

Engedélyezzük a swap fájl használatát a “swapon” paranccsal:

sudo swapon /swapfile

Ahhoz, hogy mindig automatikusan megtörténjen ez, be kell állítani a swap fájl használatát az /etc/fstab fájlban. Nyissuk meg a fájlt kedvenc szerkesztőnkkel és adjuk hozzá az alábbit egy új sorba:

/swapfile swap swap defaults 0 0

Annak ellenőrzésére, hogy a swap terület aktív-e, használhatjuk a “swapon” vagy a “free” parancsot az alábbiak szerint:

sudo swapon --show

Hasonlót kell látnunk:

NAME      TYPE SIZE   USED PRIO
/swapfile file   2G 530.8M   -2

Hogyan állítsuk be a swappiness értékét

A “Swappiness” egy Linux kernel tulajdonság, amely meghatározza, hogy a rendszer milyen gyakran használja a csereterületet. A paraméteter értéke 0 és 100 között lehet. Az alacsony érték arra készteti a kernelt, hogy megpróbálja elkerülni a swap használatát, amikor csak lehetséges, míg a magasabb érték arra készteti a kernelt, hogy agresszívebben használja a swap területet.

A legtöbb Linuxon az alapértelmezett érték a 60-as, azonban ezt kézzel is tudjuk ellenőrizni:

cat /proc/sys/vm/swappiness

Kimenetként megkapjuk az aktuális értéket:

60

Míg a 60-as csereérték megfelelő a legtöbb Linux rendszernél, az éles kiszolgálók esetében előfordulhat, hogy alacsonyabb értéket kell beállítani.

Például a csereérték 10-re állításához futtassa a következő sysctl parancsot:

sudo sysctl vm.swappiness=10

Ahhoz, hogy ez a paraméter az újraindítások során állandó legyen, fűzze hozzá a következő sort az /etc/sysctl.conf fájlhoz:

vm.swappiness=10

Az optimális swappiness érték a rendszer terhelésétől és a memóriahasználattól függ. Ezt a paramétert kis lépésekben kell módosítani az optimális érték megtalálásához.

## Swap fájl eltávolítása

Ha bármilyen okból deaktiválni és eltávolítani szeretné a swap fájlt, kövesse az alábbi lépéseket:

Először kapcsolja ki a swap területet a következő parancs beírásával:

sudo swapoff -v /swapfile

Ez akár sok időt is vehet igénybe, ha nagy a swap fájl, vagy lassú a rendszerünk. Ha nincs elég szabad memória, akár sikertelen is lehet a művelet.

Következő lépésben el kell távolítani a “/swapfile” kezdetű sort az /etc/fstab fájlból.

Végül törölje a tényleges swapfile fájlt az rm paranccsal:

sudo rm /swapfile

Ha problémába ütközik, vagy visszajelzése van, lépjen kapcsolatba velünk!