SWAP atmintis naudojama RAM atminčiai papildyti, kai ši nebegali saugoti daugiau duomenų. Duomenys, kurių neįmanoma išsaugoti RAM atmintyje, tuomet perkeliami į SWAP atmintį. Šiame straipsnyje pateiksime pagrindinius veiksmus, kaip pakeisti ir padidinti SWAP atmintį mūsų Linux KVM serveriuose.
Apskritai egzistuoja įvairių nuomonių, kiek SWAP atminties turėtų turėti jūsų serveris. Ji gali sudaryti pusę RAM kiekio, būti tokio pat dydžio arba net didesnė už RAM.
SWAP atminties priskyrimas
Pirmiausia turėtumėte patikrinti, ar jūsų serveryje nenaudojama SWAP atmintis, naudodami šią komandą:
free -h
Rezultatai bus pateikti dviejose eilutėse: „Mem“ ir „Swap“, kurios nurodys tikslų RAM ir SWAP atminties kiekį KVM serveryje. Eilutėje „Swap“ turėtų būti tik nuliai.
Naudodami šią komandą priskirsime 6 GB disko vietos SWAP atminčiai:
fallocate -l 6G /swapfile
Galite patikrinti, ar SWAP atmintis buvo priskirta, naudodami šią komandą:
ls -lh /swapfile
Iš pradžių SWAP gali būti nepriskirta dėl netinkamų teisių, ir galite matyti tokį pranešimą:
-rw-r--r-- 1 root root 6.0G Dec 5 14:32 /swapfile
Tai reiškia, kad reikia atlikti papildomus pakeitimus — pirmiausia pakeisti „swapfile“ failo teises:
chmod 600 /swapfile
Po pakeitimo galite dar kartą patikrinti failo teises:
ls -lh /swapfile
Rezultatai turėtų atrodyti taip:
-rw------- 1 root root 6.0G Dec 5 14:36 /swapfile
Dabar nustatykite „swapfile“ kaip Linux SWAP:
mkswap /swapfile
Galiausiai įjunkite SWAP naudojimą:
swapon /swapfile
Dabar galime patikrinti, ar SWAP atmintis buvo tinkamai priskirta:
free -h
Rezultatuose vėl matysite dvi eilutes, tačiau šį kartą eilutėje „Swap“ bus rodoma 6 GB reikšmė.
Papildomi nustatymai
Paprastai SWAP atminties priskyrimas gali nustoti veikti po KVM serverio perkrovimo, todėl norint išsaugoti šiuos pakeitimus visam laikui, reikia pakoreguoti /etc/fstab failą. Tačiau pirmiausia rekomenduojame sukurti šio failo atsarginę kopiją:
cp /etc/fstab /etc/fstab.old
Kai atsarginė kopija sukurta, atlikite pakeitimus tikrajame faile:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Taip pat verta aptarti kelias papildomas SWAP atminties parinktis.
Parinktis „swappiness“
Parinktis swappiness nusako, kada sistema perkels duomenis į SWAP failą. Šios parinkties reikšmė gali būti nuo 0 iki 100.
Reikšmė arčiau 0 reiškia, kad duomenys bus perkeliami į SWAP tik tada, kai tai būtina.
Reikšmė arčiau 100 reiškia, kad duomenys į SWAP bus perkeliami dažniau, todėl RAM atmintis liks laisvesnė.
Rekomenduojame naudoti mažesnę reikšmę, pavyzdžiui, 10.
Dabartinę reikšmę galite patikrinti šia komanda:
cat /proc/sys/vm/swappiness
Parinktis „vfs_cache_pressure“
Parinktis vfs_cache_pressure nustato, kaip dažnai atnaujinama failų sistemos informacija. Pagal numatytuosius nustatymus reikšmė turėtų būti 100, tačiau rekomenduojame naudoti mažesnę reikšmę, pavyzdžiui, 50.
Dabartinę reikšmę galite patikrinti šia komanda:
cat /proc/sys/vm/vfs_cache_pressure
Abi papildomas parinktis galima redaguoti faile /etc/sysctl.conf.
Failo pabaigoje pridėkite šias eilutes:
vm.swappiness=10
vm.vfs_cache_pressure=50
