Virtuaalmälu on üks neist asjadest, mis on tänapäevaste operatsioonisüsteemide aluseks, kuid tavaliselt ei mõtle te sellele tegelikult, kui teil pole probleeme. Linuxi distributsioonid paluvad teil installimise ajal seadistada virtuaalse mäluruumi (vahetuspartitsioonid), kuid enamik algajaid ei tea, kui kasulik see on.
Siin on kõik, mida pead teadma Linuxi virtuaalmälu kohta.
Mis on virtuaalmälu?
Virtuaalmälu on teie mälu kujutamise viis, mis on eemaldatud teie arvuti füüsilisest mälust. See kasutab nii teie RAM-i kui ka salvestusruumi, olgu see siis traditsioonilisel kõvakettal või SSD-l.
Linuxis tehakse seda kerneli ja riistvara tasemel. CPU-l on riistvara, mida nimetatakse mäluhaldusüksuseks (MMU), mis teisendab füüsilised mäluaadressid virtuaalseteks. Need aadressid ei sõltu nende füüsilisest asukohast masinas. Neid aadressiruume nimetatakse "lehtedeks" ja need võivad asuda RAM-is või teie kõvakettal või SSD-l. OS näeb neid aadresse ühe suure mälukogumina, mida nimetatakse "aadressiruumiks".
Virtuaalne mälu kasutab ära asjaolu, et kogu teoreetiliselt kasutatavat mälu ei kasutata kogu aeg. Mälus olevad programmid jaotatakse lehtedeks ja osad, mida kernel peab ebavajalikuks, "vahetatakse välja" või teisaldatakse kõvakettale. Kui neid vaja läheb, saab need sisse vahetada või RAM-i tagasi tuua.
Draivi virtuaalmälu jaoks kasutatavat ruumi nimetatakse "tagavarahoidlaks" või "vahetusruumiks". Windowsi maailmas on see nii tavaliselt rakendatakse failina, mida nimetatakse vahetusfailiks. Seda on võimalik teha ka Linuxis, kuid see on palju tavalisem juurde kasutage spetsiaalset kettasektsiooni.
Linuxi vahetusfailid on tavaliselt reserveeritud minimaalsetele või manustatud süsteemidele ning on tavaline, et viimased töötavad täielikult ilma virtuaalse mäluta, kuna manustatud OS-id peavad olema väikesed.
Virtuaalmälu tulemus on see, et on võimalik käivitada suuri programme, kasutades rohkem mälu kui füüsiline RAM. sarnaselt sellele, kuidas krediitkaart võimaldab teil teha suuri oste suurema raha eest, kui teil on pangas konto. Sarnaselt krediitkaardiga on virtuaalmälu kasulik siis, kui seda vajate, kuid te ei soovi selle kasutamist üle pikendada.
Virtuaalne mälu võimaldab arendajatel luua ka rakendusi, ilma et nad peaksid teadma, kuidas arvuti mälu on korraldatud.
Ajalooliselt on virtuaalmälu peamine negatiivne külg olnud see, et kõvakettad on olnud aeglasemad kui RAM. Kui masinal ei ole piisavalt RAM-i, võib süsteem lõputult lehti sisse ja välja vahetada – seda protsessi nimetatakse "peksutamiseks". See on Moodsate arvutite puhul, millel on rohkem RAM-i ja kiiremad SSD-d, mis tõrjuvad välja mehaanilised kõvakettad, on see probleem väiksem, kuid sellest tuleb siiski teadlik olla kohta.
Linuxi vahetuspartitsioonid
Nagu varem mainitud, on Linuxi virtuaalmälu seadistamise tavaline meetod spetsiaalse kettapartitsiooni kasutamine. Installimisutiliit uurib teie riistvara ja pakub välja partitsiooniskeemi, mis sisaldab vahetuspartitsiooni.
Vahetussektsioone saate lisada ka pärast installimist. Kui soovite olemasolevale kettale uue partitsiooni lisada, peate seda tegema kasutage mittepurustavat partitsioonitööriista nagu GParted. Veenduge, et oleksite oma partitsiooni failisüsteemiks valinud "Linux swap".
Varundage olulised andmed enne draivi ümberjaotamist.
Pärast partitsiooni loomist kasutage partitsiooni vormindamiseks käsku mkswap.
sudo mkswap /dev/sdX
Nüüd peate muutma oma /etc/fstab root kasutajana, et lisada oma vahetuspartitsioon. See failile lisatud rida seadistab alglaadimisel ühendatava vahetuspartitsiooni:
/dev/sdX none swap vaikeseaded 0 0
Nüüd kasutage vahetus käsk uue vahetusruumi aktiveerimiseks, kus sdX on teie vahetuspartitsiooni nimi:
sudo swapon /dev/sdX
Vahetusfailide kasutamine Linuxis
See on lihtne vahetusfaili seadistamine Linuxis kasutades käsurida. Võib-olla soovite seda teha, kui te ei soovi oma draivi ümber jaotada ega redigeerida /etc/fstab. Üks meetod on kasutada langetama:
Näiteks 2 GB vahetusfaili loomiseks tehke järgmist.
sudo fallocate -l 2G /tee/vahetusfaili
Alternatiivina saate vahetusfaili loomiseks kasutada käsku dd.
sudo dd kui=/dev/null kohta=/path/to/swapfile bs=1024 count=2048
Veenduge, et kasutaksite käsku dd õigesti, kuna infile'i ja outfile'i vale muutmine võib põhjustada andmete kadumise. Fallocate on sel põhjusel eelistatud meetod.
The /dev/zero seade on spetsiaalne seade, mis väljastab "0". See dd-käsk loob tühja kahe gigabaidise plokifaili, kasutades vahetusruumina kasutamiseks sobivaid 1024-kilobaidiseid plokke.
Seejärel saate kasutada mkswap ja vahetus käske vahetusfailiga nagu vahetuspartitsiooniga:
sudo mkswap /path/to/swapfile
sudo swapon /path/to/swapfile
Võite küsida, millal peaksite oma vahetusruumi jaoks kasutama vahetusfaili või spetsiaalset partitsiooni. Valik on lihtne: enamikul juhtudel peaksite kasutama partitsiooni. See on parim valik Linuxi töölaua või serveri jaoks. Installeri soovitatud partitsiooniskeem on tavaliselt piisav ühe kasutaja Linuxi töölaual.
Kui kasutate Linuxi virtuaalmasinas, väikeses manustatud süsteemis või kui te lihtsalt ei soovi oma olemasolevat Linuxi süsteemi ümber jaotada, võiksite kasutada vahetusfaili.
Kui palju vahetusruumi?
Paljude aastate jooksul on standardne nõuanne selle kohta, kui palju vahetusruumi on vaja, kaks korda suurem kui füüsiline RAM. Ka kõige odavamate arvutitega kaasas olevate suurte draivide ja mälumahu tõttu võib see reegel kõne alla tulla.
Paljudes süsteemides, kui märgite top või htop, võite isegi märgata, et teie vahetusruumi ei kasutata üldse, kui seadistate oma süsteemi sel viisil.
Siiski on kahekordne füüsiline mälu hea lähtepunkt ja kindlustuspoliis, kui seada mälule suuremaid nõudmisi. Vajadusel saate oma süsteemis muudatusi teha. Kui teie süsteem kasutab kogu teie RAM-i, võib arvutil tekkida virtuaalmälu kasutamisel jõudlusprobleeme.
Arvuti võib pidevalt sisse ja välja vahetada – seda protsessi nimetatakse peksmiseks, mistõttu tundub, et see ei reageeri. Kui teil on endiselt mehaaniline kõvaketas, võite sageli kuulda, kuidas see pidevalt juurde pääseb.
See on tänapäeval palju väiksem probleem, kuna isegi kõige odavamate arvutite RAM-i maht on enam kui piisav, lisaks on SSD-de kiirus palju suurem kui vanadel kõvaketastel. See on ikkagi midagi, mida peaksite teadma.
Lihtsaim viis selle parandamiseks on lihtsalt lisada oma masinale rohkem RAM-i. Kui see pole võimalik, võite proovida kohandada Linuxi tuuma "vahetust".
Vahetusarv määrab, kui palju kernel virtuaalmällu sukeldub. See on vahemikus 0 kuni 100. Selle määramine 0-le tähendab, et Linux ei vaheta üldse, samas kui 100 puhul vahetab see igal võimalusel. Enamiku süsteemide vaikeväärtus on 60.
Vahetuse ajutiseks muutmiseks kasutage käsku sysctl:
sudo sysctl vm.swappiness=20
"20" selles käsus on vahetusnumber kuni taaskäivitamiseni. Selle püsivaks muutmiseks muutke /etc/sysctl.conf faili juurfailina ja asetage rida "vm.swappiness=[vahetusnumber]", kus "[vahetusnumber]" on soovitud vahetusnumber. See on vaheaeg, kuni saate installida rohkem RAM-i.
Virtuaalne mälu hoiab teie Linuxi süsteemi sujuvalt töös
Virtuaalmälu on tänapäevaste OS-ide, sealhulgas Linuxi komponent, mis hoiab teie arvuti sujuvalt töös. Võite kasutada vahetusfaili, kuid tavaline meetod on spetsiaalne partitsioon. Te ei pea sellele nii palju mõtlema, kuid Linuxi vahetuspartitsioonid ja vahetusfailid on hõlpsasti seadistatavad ja tõrkeotsingud.
Suur osa neist nõuannetest on rakendatav ka muudele süsteemidele, sealhulgas Windowsile, isegi kui virtuaalmälu seadistamise meetodid on erinevad.