Izdelava datoteke SWAP v Linuxu

Branje: 2 min

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
Video: How to Create, Resize, or Extend a Linux Swap File | (Ubuntu) (SavvyNik, v angleščini)

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!

Nazaj na blog