Navidezni pomnilnik je ena tistih stvari, ki podpirajo sodobne operacijske sisteme, vendar običajno o tem ne razmišljate, razen če imate težave. Distribucije Linuxa vas prosijo, da med namestitvijo nastavite prostor za virtualni pomnilnik (swap particije), vendar se večina začetnikov ne zaveda, kako uporabno je to.
Tukaj je vse, kar morate vedeti o navideznem pomnilniku v sistemu Linux.
Kaj je navidezni pomnilnik?
Navidezni pomnilnik je način predstavitve vašega pomnilnika, ki je abstrahiran iz fizičnega pomnilnika na vašem računalniku. Uporablja vaš RAM in prostor za shranjevanje, ne glede na to, ali je ta na tradicionalnem trdem disku ali SSD.
V Linuxu se to izvaja na ravni jedra in strojne opreme. CPE ima kos strojne opreme, imenovan Memory Management Unit (MMU), ki prevaja fizične pomnilniške naslove v virtualne. Ti naslovi so neodvisni od tega, kje na računalniku se fizično nahajajo. Ti naslovni prostori so znani kot "strani" in so lahko v RAM-u ali na vašem trdem disku ali SSD. OS vidi te naslove kot en velik bazen pomnilnika, znan kot "naslovni prostor".
Navidezni pomnilnik izkorišča dejstvo, da se ves pomnilnik, ki se uporablja v teoriji, ne uporablja ves čas. Programi v pomnilniku so razdeljeni na strani in deli, za katere jedro meni, da so nepotrebni, so "zamenjani" ali premaknjeni na trdi disk. Ko jih potrebujete, jih je mogoče "zamenjati" ali vrniti v RAM.
Prostor, ki se uporablja za navidezni pomnilnik na pogonu, je znan kot "podporna trgovina" ali "swap space". V svetu Windows je običajno implementiran kot datoteka, znana kot "swap datoteka". To je mogoče storiti tudi v Linuxu, vendar je veliko bolj pogosto do uporabite namensko diskovno particijo.
Izmenjalne datoteke v Linuxu so običajno rezervirane za minimalne ali vgrajene sisteme in običajno je, da slednji delujejo popolnoma brez navideznega pomnilnika, ker morajo biti vgrajeni OS majhni.
Rezultat navideznega pomnilnika je, da je mogoče izvajati velike programe z uporabo več pomnilnika kot fizičnega RAM-a v vaš stroj, podobno kot vam kreditna kartica omogoča velike nakupe za več denarja, kot ga imate na banki račun. Tako kot kreditna kartica je tudi navidezni pomnilnik uporaben, ko ga potrebujete, vendar ne želite pretirano uporabljati.
Navidezni pomnilnik prav tako omogoča razvijalcem ustvarjanje aplikacij, ne da bi morali vedeti, kako je organiziran pomnilnik računalnika.
Glavna slaba stran virtualnega pomnilnika je bila v preteklosti ta, da so bili trdi diski počasnejši od RAM-a. Če stroj nima dovolj RAM-a, lahko sistem neskončno izmenjuje strani, kar je proces, znan kot "mlatenje". To je manj težav pri sodobnih osebnih računalnikih z več RAM-a in hitrejšimi diski SSD, ki izpodrivajo mehanske trde diske, vendar se je še vedno treba zavedati od.
Izmenjalne particije Linuxa
Kot smo že omenili, je običajna metoda za nastavitev navideznega pomnilnika v Linuxu uporaba namenske diskovne particije. Namestitveni pripomoček bo pregledal vašo strojno opremo in predlagal particijsko shemo, ki vključuje izmenjalno particijo.
Po namestitvi lahko dodate tudi izmenjalne particije. Če želite obstoječemu pogonu dodati novo particijo, boste morali to storiti uporabite orodje za nedestruktivno particioniranje kot GParted. Prepričajte se, da ste kot datotečni sistem za vašo particijo izbrali "Linux swap".
Varnostno kopirajte pomembne podatke, preden ponovno razdelite disk.
Ko ustvarite svojo particijo, uporabite ukaz mkswap za formatiranje particije.
sudo mkswap /dev/sdX
Zdaj boste morali urediti svoje /etc/fstab kot root, da dodate izmenjalno particijo. Ta vrstica, dodana v datoteko, bo nastavila izmenjalno particijo, ki bo nameščena ob zagonu:
/dev/sdX brez zamenjave privzetih vrednosti 0 0
Zdaj uporabite swapon ukaz za aktiviranje vašega novega izmenjalnega prostora, kjer je sdX ime vaše izmenjalne particije:
sudo swapon /dev/sdX
Uporaba izmenjalnih datotek v sistemu Linux
To je enostavno nastavite izmenjalno datoteko v Linuxu z uporabo ukazne vrstice. To boste morda želeli storiti, če se ne želite truditi s ponovnim razdeljevanjem diska ali urejanjem /etc/fstab. Ena od metod je uporaba padec:
Če želite na primer ustvariti izmenjalno datoteko velikosti 2 GB:
sudo fallocate -l 2G /path/to/swapfile
Namesto tega lahko uporabite ukaz dd za ustvarjanje izmenjalne datoteke.
sudo dd če=/dev/nič od=/path/v/swapfile bs=1024 štetje=2048
Prepričajte se, da pravilno uporabljate ukaz dd, saj lahko napačna infile in outfile povzroči izgubo podatkov. fallocate je iz tega razloga prednostna metoda.
The /dev/zero naprava je posebna naprava, ki izpiše "0." Ta ukaz dd ustvari prazno dvogigabajtno blokovno datoteko z uporabo 1024-kilobajtnih blokov, primernih za uporabo kot izmenjalni prostor.
Nato lahko uporabite mkswap in swapon ukaze z izmenjalno datoteko, kot bi z izmenjalno particijo:
sudo mkswap /path/to/swapfile
sudo swapon /pot/do/swapfile
Morda se sprašujete, kdaj bi morali za svoj izmenjalni prostor uporabiti izmenjalno datoteko ali namensko particijo. Izbira je enostavna: v večini primerov bi morali uporabiti particijo. To je najboljša izbira za namizje ali strežnik Linux. Particijska shema, ki jo predlaga namestitveni program, je običajno primerna za enouporabniško namizje Linux.
Izmenjalno datoteko boste morda želeli uporabiti, če uporabljate Linux v virtualnem računalniku, v majhnem vgrajenem sistemu ali pa preprosto ne želite ponovno razdeliti obstoječega sistema Linux.
Koliko prostora za zamenjavo?
Že vrsto let je standardni nasvet glede potrebnega prostora za izmenjavo dvakrat več fizičnega RAM-a. Zaradi velikih diskov in količine pomnilnika, ki jih imajo celo najcenejši osebni računalniki, je to pravilo lahko vprašljivo.
V mnogih sistemih, če označite top ali htop, boste morda celo opazili, da vaš izmenjalni prostor sploh ni uporabljen, če sistem nastavite na ta način.
Kljub temu je dvojni fizični pomnilnik dobro izhodišče in zavarovalna polica, če imate večje zahteve po pomnilniku. Po potrebi lahko spremenite svoj sistem. Če vaš sistem uporablja ves vaš RAM, lahko računalnik pri uporabi navideznega pomnilnika naleti na težave z delovanjem.
Računalnik se lahko kar naprej menja, kar je proces, znan kot prebijanje, zaradi česar je videti neodziven. Če še vedno imate mehanski trdi disk, lahko pogosto slišite, kako nenehno dostopa.
Danes je to veliko manj težava, saj je količina RAM-a tudi na najcenejših osebnih računalnikih več kot ustrezna, poleg tega pa je hitrost SSD-jev veliko večja od starih trdih diskov. To je še vedno nekaj, česar se morate zavedati.
To najlažje odpravite tako, da svojemu računalniku dodate več RAM-a. Če to ni mogoče, lahko poskusite prilagoditi "swappiness" jedra Linuxa.
Število zamenjave določa, koliko se jedro potopi v navidezni pomnilnik. Razpon je od 0 do 100. Nastavitev na 0 pomeni, da Linux sploh ne bo zamenjal, pri 100 pa bo zamenjal ob vsaki priložnosti. Privzeta vrednost v večini sistemov je 60.
Če želite začasno spremeniti swappiness, uporabite ukaz sysctl:
sudo sysctl vm.swappiness=20
"20" v tem ukazu bo številka za zamenjavo, dokler se znova ne zaženete. Če ga želite trajno spremeniti, uredite /etc/sysctl.conf datoteko kot root in postavite vrstico "vm.swappiness=[swappiness number]", kjer je "[swappiness number]" številka swappiness, ki jo želite. To bo vmesna vrzel, dokler ne boste mogli namestiti več RAM-a.
Navidezni pomnilnik skrbi za nemoteno delovanje vašega sistema Linux
Navidezni pomnilnik je sestavni del sodobnih operacijskih sistemov, vključno z Linuxom, ki skrbi za nemoteno delovanje vašega računalnika. Uporabite lahko izmenjalno datoteko, vendar je običajna metoda namenska particija. Ni vam treba toliko razmišljati o tem, vendar je izmenjalne particije in izmenjevalne datoteke Linux enostavno nastaviti in odpraviti težave.
Veliko teh nasvetov velja tudi za druge sisteme, vključno z Windows, tudi če so metode za nastavitev navideznega pomnilnika drugačne.