Virtuaalimuisti on yksi niistä asioista, jotka tukevat nykyaikaisia ​​käyttöjärjestelmiä, mutta yleensä et todella ajattele sitä, ellei sinulla ole ongelmia. Linux-jakelut pyytävät sinua määrittämään virtuaalisen muistitilan (swap-osiot) asennuksen aikana, mutta useimmat aloittelijat eivät ole tietoisia siitä, kuinka hyödyllistä se on.

Tässä on kaikki mitä sinun tulee tietää virtuaalimuistista Linuxissa.

Mikä on virtuaalimuisti?

Virtuaalimuisti on tapa esittää muistiasi, joka on erotettu koneen fyysisestä muistista. Se hyödyntää sekä RAM-muistiasi että tallennustilaasi, olipa se sitten perinteisellä kiintolevyllä tai SSD-levyllä.

Linuxissa tämä tehdään ytimen ja laitteiston tasolla. CPU: ssa on laitteisto, nimeltään Memory Management Unit (MMU), joka muuntaa fyysiset muistiosoitteet virtuaalisiksi. Nämä osoitteet ovat riippumattomia siitä, missä ne fyysisesti sijaitsevat koneessa. Näitä osoiteavaruuksia kutsutaan "sivuiksi", ja ne voivat olla RAM-muistissa tai kiintolevyllä tai SSD-levyllä. Käyttöjärjestelmä näkee nämä osoitteet yhtenä suurena muistivarastona, joka tunnetaan nimellä "osoitetila".

instagram viewer

Virtuaalimuisti hyödyntää sitä tosiasiaa, että kaikkea teoriassa käytettyä muistia ei käytetä koko ajan. Muistissa olevat ohjelmat jaetaan sivuille ja ytimen tarpeettomiksi katsomat osat "vaihdetaan pois" tai siirretään kiintolevylle. Kun niitä tarvitaan, ne voidaan "vaihtaa" tai tuoda takaisin RAM-muistiin.

Aseman virtuaalimuistille käytetty tila tunnetaan nimellä "taustavarasto" tai "vaihtotila". Windows-maailmassa se on toteutetaan yleensä tiedostona, joka tunnetaan nimellä "swap-tiedosto". Tämä on mahdollista myös Linuxissa, mutta se on paljon yleisempää to käytä erillistä levyosiota.

Swap-tiedostot Linuxissa on yleensä varattu minimaalisille tai sulautetuille järjestelmille, ja on yleistä, että jälkimmäiset toimivat ilman virtuaalista muistia kokonaan, koska sulautettujen käyttöjärjestelmien on oltava pieniä.

Virtuaalimuistin lopputulos on, että on mahdollista ajaa suuria ohjelmia käyttämällä enemmän muistia kuin fyysistä RAM-muistia. koneellesi, samalla tavalla kuin luottokortilla voit tehdä suuria ostoksia suuremmalla rahalla kuin sinulla on pankissasi tili. Luottokortin tavoin virtuaalimuisti on hyödyllinen, kun tarvitset sitä, mutta et halua pidentää sen käyttöä liikaa.

Virtuaalimuistin avulla kehittäjät voivat myös luoda sovelluksia ilman, että heidän tarvitsee tietää, miten tietokoneen muisti on järjestetty.

Virtuaalimuistin historiallisesti suurin haittapuoli on ollut se, että kiintolevyt ovat olleet hitaampia kuin RAM. Jos koneessa ei ole tarpeeksi RAM-muistia, järjestelmä voi jatkaa sivujen vaihtamista sisään ja ulos loputtomasti, prosessi, joka tunnetaan nimellä "thrashing". Tämä on vähemmän ongelma nykyaikaisissa tietokoneissa, joissa on enemmän RAM-muistia ja nopeampia SSD-levyjä, jotka syrjäyttävät mekaanisia kiintolevyjä, mutta se on silti huomioitava /.

Linuxin vaihto-osiot

Kuten aiemmin mainittiin, tavallinen tapa määrittää virtuaalimuisti Linuxissa on käyttää erillistä levyosiota. Asennusapuohjelma tutkii laitteistosi ja ehdottaa osiointimallia, joka sisältää sivutusosion.

Voit myös lisätä sivutusosioita asennuksen jälkeen. Jos haluat lisätä uuden osion olemassa olevaan asemaan, sinun on tehtävä se käytä tuhoamatonta osiointityökalua kuten GParted. Varmista, että olet valinnut osiosi tiedostojärjestelmäksi "Linux swap".

Varmuuskopioi tärkeät tiedot ennen aseman uudelleenosioimista.

Kun olet luonut osion, käytä mkswap-komentoa osion alustamiseen.

sudo mkswap /dev/sdX

Nyt sinun on muokattava omaa /etc/fstab root-käyttäjänä lisätäksesi swap-osion. Tämä tiedostoon lisätty rivi määrittää swap-osion, joka asennetaan käynnistyksen yhteydessä:

/dev/sdX none swap oletusarvot 0 0

Käytä nyt swapon komento aktivoidaksesi uuden sivutustilan, jossa sdX on sivutusosiosi nimi:

sudo swapon /dev/sdX

Swap-tiedostojen käyttäminen Linuxissa

Se on helppoa määritä swap-tiedosto Linuxissa komentorivin avulla. Haluat ehkä tehdä tämän, jos et halua vaivautua osioimaan asemaasi uudelleen tai muokkaamaan sitä /etc/fstab. Yksi tapa on käyttää kaatua:

Voit esimerkiksi luoda 2 Gt: n swap-tiedoston seuraavasti:

sudo fallocate -l 2G /polku/vaihtotiedostoon

Vaihtoehtoisesti voit käyttää dd-komentoa swap-tiedoston luomiseen.

sudo dd jos=/dev/nolla /=/path/to/swapfile bs=1024 count =2048

Varmista, että käytät dd-komentoa oikein, koska infile- ja outfile-tiedostojen vääristäminen voi aiheuttaa tietojen menetyksen. fallocate on suositeltu menetelmä tästä syystä.

The /dev/zero laite on erityinen laite, joka tulostaa "0". Tämä dd-komento luo tyhjän kahden gigatavun lohkotiedoston käyttämällä 1024 kilotavun lohkoja, jotka sopivat käytettäväksi swap-tilana.

Voit sitten käyttää mkswap ja swapon komennot swap-tiedoston kanssa samalla tavalla kuin swap-osion kanssa:

sudo mkswap /polku/vaihtotiedostoon
sudo swapon /path/to/swapfile

Saatat miettiä, milloin sinun pitäisi käyttää sivutustiedostoa tai erillistä osiota sivutustilaasi. Valinta on helppo: useimmissa tapauksissa sinun tulee käyttää osiota. Tämä on paras valinta Linux-työpöydälle tai palvelimelle. Asennusohjelman ehdottama osiokaavio on yleensä riittävä yhden käyttäjän Linux-työpöydälle.

Voit halutessasi käyttää sivutustiedostoa, jos käytät Linuxia virtuaalikoneessa, pienessä sulautetussa järjestelmässä tai et vain halua osioida uudelleen olemassa olevaa Linux-järjestelmääsi.

Kuinka paljon vaihtotilaa?

Useiden vuosien ajan vakiosuositus siitä, kuinka paljon sivutustilaa tarvitaan, on kaksinkertainen fyysiseen RAM-muistiin verrattuna. Tämä sääntö voi tulla kyseenalaiseksi, koska jopa halvimpien tietokoneiden mukana tulee suuria asemia ja muistia.

Monissa järjestelmissä, jos valitset top tai htop, saatat jopa huomata, että sivutustilaasi ei edes käytetä ollenkaan, jos määrität järjestelmän tällä tavalla.

Silti kaksinkertainen fyysinen muisti on hyvä lähtökohta ja vakuutus, jos muistille asetetaan suurempia vaatimuksia. Voit tehdä järjestelmääsi muutoksia tarpeen mukaan. Jos järjestelmäsi käyttää kaikkea RAM-muistia, tietokoneessa saattaa ilmetä suorituskykyongelmia virtuaalimuistia käytettäessä.

Tietokone voi jatkuvasti vaihtaa sisään ja ulos, prosessia, joka tunnetaan nimellä puskiminen, jolloin se näyttää reagoimattomalta. Jos sinulla on edelleen mekaaninen kiintolevy, voit usein kuulla sen jatkuvan käytön.

Tämä on nykyään paljon pienempi ongelma, koska RAM-muistin määrä halvimmissakin tietokoneissa on enemmän kuin riittävä, ja SSD-levyjen nopeus on paljon nopeampi kuin vanhoilla kiintolevyillä. Se on silti jotain, joka sinun pitäisi olla tietoinen.

Helpoin tapa korjata tämä on vain lisätä RAM-muistia koneellesi. Jos se ei ole mahdollista, voit yrittää säätää Linux-ytimen "vaihtoa".

Swapppiness-luku määrittää kuinka paljon ydin uppoaa virtuaalimuistiin. Se vaihtelee välillä 0-100. Sen asettaminen arvoon 0 tarkoittaa, että Linux ei vaihda ollenkaan, kun taas arvolla 100 se vaihtaa aina tilaisuuden tullen. Useimmissa järjestelmissä oletusarvo on 60.

Voit muuttaa vaihtoa väliaikaisesti käyttämällä sysctl-komentoa:

sudo sysctl vm.swappiness=20

"20" tässä komennossa on swapppiness-numero, kunnes käynnistät uudelleen. Jos haluat muuttaa sen pysyvästi, muokkaa /etc/sysctl.conf tiedosto pääkäyttäjänä ja sijoita rivi "vm.swappiness=[vaihtonumero]", jossa "[vaihtonumero]" on haluamasi vaihtonumero. Tämä on tauko, kunnes voit asentaa lisää RAM-muistia.

Virtuaalinen muisti pitää Linux-järjestelmäsi toiminnassa sujuvasti

Virtuaalimuisti on osa nykyaikaisia ​​käyttöjärjestelmiä, mukaan lukien Linux, joka pitää tietokoneesi toiminnassa sujuvasti. Voit käyttää sivutustiedostoa, mutta tavallinen menetelmä on erillinen osio. Sinun ei tarvitse ajatella sitä niin paljon, mutta Linuxin swap-osiot ja swap-tiedostot on helppo asentaa ja vianmääritys.

Suuri osa näistä neuvoista soveltuu myös muihin järjestelmiin, mukaan lukien Windows, vaikka virtuaalimuistin määritystavat ovat erilaisia.