A Swap egy olyan lemezterület (vagy 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!
2022-09-06