Swap je prostor na disku (ali datoteka), ki ga operacijski sistemi uporabijo, ko se fizični RAM zapolni ali se začne polniti. Ko v sistemu Linux začne zmanjkovati pomnilnika, jedro neaktivna (dolgo ali sploh ne uporabljena) področja pomnilnika začne premikati v prostor SWAP in tako sprošča pomnilnik.
Prostor SWAP je lahko namenska razdelitev swap ali datoteka swap. V večini primerov, ko Linux poganjamo v navideznem stroju, namenske razdelitve swap ni, zato je edina možnost ustvarjanje datoteke swap.
Tukaj opisana metoda je bila preizkušena v Ubuntu 20.04, CentOS in AlmaLinux 8, vendar bo delovala v katerem koli sodobnem Linuxu.
Kako dodaš datoteko swap
Sledi spodnjim korakom za ustvarjanje 1 GB swapa. Če želiš namesto 1 GB dodati 2 GB, zamenjaj 1G z 2G ali drugo vrednostjo (npr. 512M ali 4G).
Najprej ustvari datoteko, ki jo bomo uporabili kot prostor SWAP:
sudo fallocate -l 1G /swapfile
Če ukaz fallocate na računalniku ni nameščen ali dobiš napako »fallocate failed: Operation not supported«, lahko uporabiš tudi ukaz dd:
sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576
Datoteko swap mora brati in pisati le uporabnik root. Nastavi ustrezna dovoljenja datoteke:
sudo chmod 600 /swapfile
Z ukazom mkswap formatiraj datoteko swap:
sudo mkswap /swapfile
Uporabo datoteke swap omogoči z ukazom »swapon«:
sudo swapon /swapfile
Da se to vedno zgodi samodejno, je treba uporabo datoteke swap nastaviti v datoteki /etc/fstab. Odpri datoteko v svojem najljubšem urejevalniku in v novo vrstico dodaj naslednje:
/swapfile swap swap defaults 0 0
Za preverjanje, ali je prostor swap aktiven, lahko uporabiš ukaz »swapon« ali »free«, takole:
sudo swapon --show
Videti moraš nekaj podobnega:
NAME TYPE SIZE USED PRIO
/swapfile file 2G 530.8M -2
Kako nastaviš vrednost swappiness
»Swappiness« je lastnost jedra Linux, ki določa, kako pogosto sistem uporablja izmenjalni prostor. Vrednost parametra je lahko med 0 in 100. Nizka vrednost jedro spodbudi, da se uporabi swapa izogiba, kadar je le mogoče, višja vrednost pa jedro spodbudi, da prostor swap uporablja agresivneje.
V večini Linuxov je privzeta vrednost 60, vendar jo lahko preveriš tudi ročno:
cat /proc/sys/vm/swappiness
Kot izpis dobiš trenutno vrednost:
60
Medtem ko je vrednost 60 primerna za večino sistemov Linux, je pri produkcijskih strežnikih morda treba nastaviti nižjo vrednost.
Za nastavitev vrednosti na 10 na primer zaženi naslednji ukaz sysctl:
sudo sysctl vm.swappiness=10
Da bo ta parameter trajen tudi ob ponovnih zagonih, dodaj naslednjo vrstico v datoteko /etc/sysctl.conf:
vm.swappiness=10
Optimalna vrednost swappiness je odvisna od obremenitve sistema in porabe pomnilnika. Ta parameter je treba spreminjati v majhnih korakih, da najdeš optimalno vrednost.
Odstranitev datoteke swap
Če želiš datoteko swap iz katerega koli razloga deaktivirati in odstraniti, sledi spodnjim korakom:
Najprej izklopi prostor swap z naslednjim ukazom:
sudo swapoff -v /swapfile
To lahko traja precej časa, če je datoteka swap velika ali je sistem počasen. Če ni dovolj prostega pomnilnika, je operacija lahko celo neuspešna.
V naslednjem koraku je treba iz datoteke /etc/fstab odstraniti vrstico, ki se začne z »/swapfile«.
Na koncu z ukazom rm izbriši dejansko datoteko swapfile:
sudo rm /swapfile
Če naletiš na težavo ali imaš povratne informacije, stopi v stik z nami!