V tem članku bomo govorili o Swap datotekah in kako ustvariti swap prostor v Linuxu s pomočjo swap datoteke.
Toda preden začnemo, moramo pojasniti, kaj dejansko je zamenjava. Swap je rezerviran prostor na disku, ki se uporablja kot kraj, kjer lahko OS začasno shrani podatke, ko je fizični pomnilnik RAM poln ali blizu polnega. Z drugimi besedami, swap je rezerviran virtualni pomnilnik na disku. Običajno se swap uporablja za izboljšanje in vzdrževanje delovanja sistema, ko se ukvarjamo z nekaterimi nalogami, ki zahtevajo veliko virov.
Kadar sistem potrebuje več pomnilnika za ustvarjanje novih procesov, bo jedro premaknilo nekatere procese, ki so neaktivni, na izmenjalno particijo, da bo lahko naredil prostor za aktivne procese.
Upoštevajte, da je zamenjava običajno priporočljiva za sisteme, ki uporabljajo tradicionalne predilne trde diske. Če vaš sistem uporablja izmenjavo s pogonom SSD ali NVMe, lahko sčasoma povzroči težave s poslabšanjem strojne opreme.
1. Preverite sistem za izmenjavo informacij
Preden ustvarimo izmenjalni prostor, bomo preverili, ali je bila na strežniku že nastavljena katera koli izmenjalna datoteka ali particija. Dovoljeno je, da imamo več kot eno zamenjavo, vendar bi morala biti ena zamenjava več kot dovolj v večini primerov.
Z naslednjim ukazom lahko preverimo, ali je na strežniku že konfigurirana izmenjalna datoteka ali particija:
sudo swapon - šov
Če izhod ni, to pomeni, da vaš strežnik trenutno nima nameščene izmenjave.
Če želite zagotoviti, da vaš strežnik ne uporablja swap, lahko uporabite 'prost' ukaz:
brezplačno -h
Izhod mora biti podoben temu:
skupno uporabljeni brezplačni skupni dostop / predpomnilnik Mem: 985M 228M 579M 5.5M 177M 618M Zamenjava: 0B 0B 0B
Iz izhoda lahko vidimo, da je vrstica »Zamenjaj« nič, kar pomeni, da na strežniku ni aktivne zamenjave. Vendar pa bomo v našem primeru izdelali izmenjalno datoteko, ki bo nameščena na že obstoječi particiji.
2. Ustvari Zamenjaj
Običajno je dodeljeni prostor za zamenjavo uporabljen kot ločena particija. Preden ustvarimo izmenjalno datoteko, je najbolje, da preverite uporabo diska:
df -h
Izhod mora biti podoben temu:
Uporabljena velikost datotečnega sistema% Uporabljena% Montirano na udev 463M 0 463M 0% / dev tmpfs 99M 3.7M 95M 4% / run / dev / vda1 19G 2.2G 16G 13X / tmpfsNMN XXNNMX XNUMN% XMNMX XNUMN% XMUMN XMNNMX XNUMN% XMNMX XNUMN XMNNMX 493% XMUMN XMNNMX XNUMN% XMNMX / run / lock tmpfs 0M 493 0M 5.0% / sys / fs / cgroup tmpfs 0M 5.0 0M 493% / run / user / 0
Iz rezultatov lahko vidimo, da imamo na našem strežniku na voljo prostor 16 GB (uporabljen 2.2 GB), ki je dovolj za izdelavo izmenjevalne datoteke.
Zdaj, ko vemo, da imamo na voljo prostor za shranjevanje, bomo ustvarili datoteko, imenovano swap_file, ki bo velikosti 2GB in bo v imeniku / mnt. Z uporabo spodnjega ukaza bomo ustvarili dejansko izmenjalno datoteko:
sudo fallocate -l 2G / mnt / swap_file
Ukaz dd lahko uporabimo tudi, če na strežniku ni nameščen fallocate:
sudo dd if = / dev / zero od = / mnt / swap_file bs = število 1024 = 2097152
Kjer bs = 1024 pomeni dodeliti bajtov 1024 naenkrat za branje in pisanje count = 2048 pomeni dodeliti 1024 bajtov 2048-krat, ustvari datoteko 2GB.
Ko je datoteka swap ustvarjena, lahko preverimo, ali je rezervirana pravilna velikost prostora:
ls -lh / mnt / swap_file
Izhod mora biti podoben temu:
-rw-r - r-- koren korena 1 2.0G nov 24 10: 32 / mnt / swap_file
Iz izhodnega rezultata lahko vidimo, da je bila swap datoteka ustvarjena z 2GB pomnilnika.
3. Omogoči zamenjavo
Zdaj, ko imamo na voljo swap datoteko, jo moramo uporabiti in spremeniti v dejanski swap prostor.
Prvi korak bo zaklepanje dovoljenj swap_file, tako da ga bodo lahko prebrali le uporabniki s korenskimi pravicami. To lahko storimo tako, da vnesemo:
sudo chmod 600 / mnt / swap_file
Sedaj navedite datoteko, da bomo lahko preverili njena dovoljenja.
ls -lh / mnt / swap_file
izhod:
-rw ------- Korenski koren 1 2.0G Nov 24 10: 33 / mnt / swap_file
Iz zgornjega izpisa lahko vidimo, da ima le root uporabnik omogočene zastavice za branje in pisanje.
Naslednji korak je označiti datoteko kot swap.
sudo mkswap / mnt / swap_file
izhod:
Nastavitev različice swappace 1, velikost = 2 GiB (2147479552 bytes) brez oznake, UUID = c569dd4f-ffd9-4192-93dd-f6a470025d76
Ko označimo datoteko, lahko aktiviramo swap datoteko in omogočimo, da jo strežnik začne uporabljati:
sudo swapon / mnt / swap_file
Preverite, ali je swap datoteka na voljo z naslednjim ukazom:
sudo swapon -s
izhod:
Ime datoteke Vrsta Velikost Uporabljena prioriteta / mnt / swap_file datoteka 2097148 0 -2
Ponovno lahko preverimo izhodni ukaz "free", da potrdimo:
brezplačno -h
izhod:
skupno uporabljeni brezplačni skupni dostop / predpomnilnik Mem: 985M 228M 64M 5.5M 691M 608M Zamenjava: 2.0G 0B 2.0G
Iz zgornjih rezultatov lahko vidimo, da je bila zamenjava uspešno vzpostavljena.
4. Naredite Swap File Permanent
Z zgornjimi spremembami smo ustvarili swap datoteko, vendar je začasna in veljavna samo do naslednjega zagona strežnika. Če ponovno zaženemo sistem, strežnik ne bo obdržal nastavitev zamenjave, ki smo jo ustvarili. Če želite to spremeniti, moramo urediti datoteko / etc / fstab in v njej dodati izmenjalno datoteko.
Dobro je ustvariti varnostno kopijo datoteke / etc / fstab, preden izvedete kakršne koli spremembe.
sudo cp / etc / fstab / etc / fstab_bak
Zdaj lahko urejate / etc / fstab z želenim urejevalnikom besedila (v tem primeru bomo uporabili nano)
sudo nano / etc / fstab
in dodajte naslednjo vrstico:
/ mnt / swap_file swap zamenjati privzeto 0 0
Shranite in zaprite datoteko.
5. Kako odstraniti Swap datoteko
V zadnjem delu članka vam bomo pokazali, kako deaktivirate in odstranite datoteko izmenjave.
S tem ukazom lahko deaktiviramo swap datoteko:
sudo swapoff -v / mnt / swap_file
izhod:
swapoff / mnt / swap_file
Nato uredite datoteko / etc / fstab in odstranite datoteko izmenjave z odstranitvijo ali komentiranjem vrstice:
/ mnt / swap_file swap zamenjati privzeto 0 0
Na koncu lahko po želji izbrišete dejansko izmenjalno datoteko:
sudo rm -rf / mnt / swap_file
S temi koraki smo popolnoma odstranili swap datoteko iz našega strežnika.
zaključek
V tem članku smo se naučili, kako preveriti, ali smo omogočili swap na našem strežniku, kako ustvariti swap datoteko, kako omogočiti swap, kako narediti swap datoteko trajno in kako deaktivirati in odstraniti swap datoteko iz našega strežnika.
Včasih je prostor za izmenjavo lahko zelo uporaben, vendar če je vaš strežnik vključen v napake OOM (brez spomina), je najboljša rešitev nadgraditi strežnik na višji gostiteljski načrt.