Linuxi tuum

Linuxi tuuma mäluhalduse vahetusruum

Linuxi tuuma mäluhalduse vahetusruum

Esimene osa. Vaheta ruumi

Korralikuks tööks sõltub arvuti piisavast mälumahust. Lihtsalt öeldes, et kunagi ei saa olla piisavalt. Mida rohkem füüsilist mälu on installitud, seda kulukam on. Enamasti on tulemuseks nutikas kompromiss kulude ja kiiruse vahel mälurakkudele juurdepääsuks.

Selle kompromissi saavutamiseks ühendavad UNIX / Linux süsteemid kahte tüüpi mälu - füüsilise mälu (RAM) ja ruumi vahetamise. Kokku nimetatakse seda arvutisüsteemi virtuaalseks mäluks. Füüsiline mälu on üsna kallis, kuid kiire ja ligipääsetav nanosekundite jooksul. Seevastu on vahetusmälu üsna odav, kuid aeglane ja ligipääsetav millisekundite jooksul.

Mälu vahetamiseks on mõned põhjused. Esiteks vajavad üksikud protsessid mõnikord rohkem mälu, kui süsteem füüsiliselt omab, ja suudavad protsessidele, mis seda nõuavad, pakkuda rohkem. Seetõttu ei saa kõiki füüsilises mälus hoitavaid andmeid sinna enam salvestada. Nüüd tuleb mängu vahetusruum ja valik mälulehti kantakse vahetamisruumi füüsilise mälu vabastamiseks.

Teiseks, kõiki andmeid pole mälus vaja korraga. Sellepärast pargitakse vähemkasutatavaid mälulehti vahetusruumi, et saada võimalikult palju vaba füüsilist mälu. Seda meetodit nimetatakse kõige vähem kasutatud lehe asendamise algoritmiks (LRU) [1].

Vahetustüübid

Vahetusruum on kahes variandis. Versioon 1 on eraldi kettasektsioon, mis on nn vahetuspartitsioon. Sellesse sektsiooni pole salvestatud faile, kuid mäluteave (prügimäed). Lihtsalt, versioon 2 on kettal olev fail, mis asub kõvaketta failisüsteemis. Versioon 1 on väga levinud UNIX / Linuxi süsteemides, BSD ja OS X, samas kui versioon 2 on olemas süsteemides, kus töötab Microsoft Windows. Versiooni 2 saab lubada ka UNIX / Linuxi süsteemides (vt allpool).

UNIX / Linuxi süsteemis aktiivse vahetusruumi nägemiseks käivitage terminalis järgmine käsk:

$ / sbin / swapon -s
Failinime tüüp Suurus Kasutatud prioriteet
/ dev / dm-3 partitsioon 16150524 316484 -1
$

Teise võimalusena võite saata päringu proc-failisüsteemi ja käivitada käsu cat / proc / swaps

Sellel Linuxi süsteemil on umbes 15 GB suurune vahetuspartitsioon, milles on praegu kasutusel üle 300 miljoni. Veerg Prioriteet näitab, millist vahetusruumi kõigepealt kasutada. Vaikeväärtus on -1. Mida kõrgem on prioriteediväärtus, seda varem võetakse see vahetusruum arvesse. Valik -s on kokkuvõtte lühiversioon. See suvand on iganenud ja selle asemel on soovitatav kasutada valikut -show järgmiselt:

$ / sbin / swapon --show = NIMI, TÜÜP, SUURUS, KASUTATUD, PRIO
NIMETÜÜBI SUURUS KASUTATUD PRIO
/ dev / dm-3 sektsioon 15,4G 307,1M -1
$

Valik -show aktsepteerib veergude päiseid tähistavate väärtuste loendit. Konkreetse väljundjärjestuse saavutamiseks valige soovitud veerupäised ja nende järjestus.

Vaheta suurus

Üldreeglina on vahetusruumi suurus soovitatav kaks korda suurem kui süsteemil on füüsiline mälu. Pidage seda meeles üldotstarbeliste seadistuste ja lauaarvutite puhul. Palju suurema füüsilise mäluga UNIX / Linuxi serverite puhul võite vähendada vahetatava ruumi suurust 50% -ni RAM-ist. Talveunerežiimil olevad sülearvutid peavad olema veidi suuremad kui füüsiline mälu.

Paigaldamine

Vahetuspartitsiooni jaoks on soovitatav mõelda vahetatavale ruumile kohe ketta üksikuteks jaotusteks jagamise alguses või jätta piisavalt kasutamata kettaruumi selle kasutamiseks hiljem, lõpuks. Tavaliselt küsib kasutatavate ketaste seadistamise ajal häälestusrutiin vahetusruumi suuruse kohta. Näiteks Debiani GNU / Linuxis näeb see välja järgmine:

Nagu eespool mainitud, saate niipea, kui kõvakettal on ruumi uute partitsioonide jaoks, luua ja lisada vahetuspartitsioone selliste käskude abil nagu fdisk ja swapon.

Alternatiivina saab vahetusruumi lubada ka hiljem vahetusfailina. Linux toetab seda viisi, et saaksite seda luua, ette valmistada ja paigaldada sarnaselt vahetuspartitsioonile. Selle viisi eeliseks on see, et täiendava vahetamisruumi lisamiseks pole vaja ketta ümber jaotada.

Näiteks loome faili nimega / swapfile suurusega 512M ja lubame selle täiendava vahetamisruumina. Esiteks loome käsu dd abil tühja faili. Teiseks kasutab mkswap seda faili selle vahetamiseks vahetusstiiliks. Võite märgata, et faili sisu käsitletakse partitsioonina ja omistatakse vastav UUID. Kolmandaks lubame selle swaponi abil. Lõpuks kuvatakse käsk swapon -show kaks vahetuskirjet - partitsioon ja äsja loodud fail.

# dd kui = / dev / null = / vahetusfailist bs = 1024 loend = 524288
524288 + 0 andmekogumit
524288 + 0 andmekogumit välja
536870912 baiti (537 MB) kopeeritud, 0,887744 s, 605 MB / s
# mkswap / swapfile
Vahetusruumi versiooni 1 seadistamine, suurus = 524284 KiB
silt puudub, UUID = e47ab7fe-5efc-4175-b287-d0e83bc10f2e
# swapon / swapfile
# swapon --show = NIMI, TÜÜP, SUURUS, KASUTATUD, PRIO
NIMETÜÜBI SUURUS KASUTATUD PRIO
/ dev / dm-3 sektsioon 15,4G 288,9M-1
/ swapfile fail 512M 0B -2
#

Selle vahetusfaili kasutamiseks käivitamisel lisage administraatorina failile järgmine rida / etc / fstab:

/ swapfile puudub swap sw 0 0

Vahetusruumi keelamine

Vähim, kuid mitte viimane, on üks käsk swap-faili keelamiseks. Käsk on kutsutud vahetada. See nõuab ühte parameetrit, mis näitab vahetusseadme keelamist. See käsk keelab varem aktiveeritud vahetusfaili:

# swapoff / swapfile

Samuti, vahetada saab töötada failisüsteemi UUID-ga. Tegema vahetada toimige sel viisil, kasutage valikut -U järgneb vastava failisüsteemi UUID. Juhul kui on vaja keelata kõik vahetusruumid korraga -a (pikk variant-kõik) on üsna käepärane. Täielik käsk on vahetada -a.

Vahetusökosüsteemi häälestamine

Alustades Linuxi tuuma versioonidega 2.6 võeti kasutusele uus väärtus. See salvestatakse muutujasse / proc / sys / vm / vahetusja kontrollib käitamismälu vahetamise suhtelist kaalu, vastandina mälulehekülgede kukutamisele süsteemilehe vahemälust [2]. Vaikeväärtus on 60 (enne vahetuse aktiveerimist vaba mälu protsent). Mida väiksem on väärtus, seda vähem kasutatakse vahetusi ja seda rohkem mälulehti hoitakse füüsilises mälus.

Väärtuse määramiseks määrake väärtus / proc-failisüsteemis ajutiselt järgmiselt:

# kaja 10> / proc / sys / vm / vahetus

Alternatiivina võite kasutada sysctl käsk järgmiselt:

# sysctl -w vm.vahetus = 10

Väärtuse määramiseks lisage failile järgmine rida / etc / sysctl.konf:

vm.vahetus = 10

Kas vahetus on endiselt ajakohane?

Võite küsida, miks me selle teemaga tegeleme. Kaasaegsetes arvutites on piisavalt füüsilist mälu - miks me peame sellest hoolima? On mõned põhjused, miks see tehnoloogia on rohkem väärt kui mõte.

Pidage meeles, et jääte mõnda aega oma masina juurde, kuid võite aeg-ajalt värskendada sellel kasutatavat tarkvara. Praegu sobivad nii riist- kui ka tarkvara üksteisele. Tulevikus võib see muutuda ja vajate rohkem mälu kui praegu. Kui uuendada või osta uut riistvara, võib Swapi sektsioon säästa natuke raha.

Võib-olla olete kuulnud funktsioonist, mille nimi on kettale peatamine või talveunerežiim [3]. Teie masin hakkab magama. Enne seda peab ta oma praeguse oleku kuhugi salvestama. Nüüd tuleb mängu vahetusruum ja see toimib konteinerina nende andmete säilitamiseks. Niipea kui masin järgmisel korral üles ärkab, loetakse kogu andmevahetusruumist kõik mällu laaditud andmed ja saate jätkata tööd seal, kus olete varem peatunud.

Kui süsteemil on ainult üks püsisalvestusseade, peab ta samal seadmel vahetades teie faile lugema ja kirjutama. Näete tohutut paranemist, kui teil on teine ​​seade ja saate vahetada seadme konfliktsetest failipääsudest.

Vahetusfail peab andmeid edastama failisüsteemi kaudu. See lisab suunamata kihi, et ilmneks, et kernelil on külgnev loogiline aadressiruum. See lisab täiendavaid mälu üld- ja protsessoritsükleid. Parima tulemuse saate toorse vahetuspartitsiooni abil.

Järeldus

Isegi täna on teadmised vahetuse kohta hädavajalikud. See teema on osa teadmistest, mis on vajalikud Linux Professional Instituudi 1. taseme (LPIC 1) läbimiseks. Enamik eksameid sisaldab ühte või kahte küsimust selle teema kohta.

Ruumi vahetamine aitab teie Linuxi süsteemil (kernelil) vajadusel mälu kiiresti korrastada. Sinuga avatud olemiseks pole ruumi vahetamine tingimata vajalik, kui teie süsteemis on palju RAM-i. Hädaolukordade korral aitab see teie süsteemil ellu jääda. Seetõttu ei lahkuks ma kunagi traditsioonilise seadistuse rajalt ilma vahetusruumita.

Swapi ja SSD kombinatsiooni arutatakse vastuolulisel viisil, kuna SSD-le kirjutatavate ketaste arv on üsna piiratud. Nii vahetus- kui ka ajutised failid on loodud paljude andmete kirjutamiseks. Teiselt poolt on tänapäevastel SSD-del sektori riketega toimetulekuks rohkem kui piisavalt lisaruumi (7%). Turvalisuse tagamiseks: kui võimalik, pidage tavalisel kõvakettal eraldi vahetust - vähemalt vahetuseks ärge kasutage ramdiskit ega SSD-d [4]. Teie Linuxi süsteem tänab teid selle otsuse eest.

Vältimaks oma SSD-le vahetusruumi, võite selle asemel kasutada ZRAM-i [5,6]. See on RAM-is tihendatud virtuaalne vahetus, mille nimi on ka zSwap. See tehnoloogia võimaldab mälus tihendatud plokkseadet. Niipea, kui mälu enam pole, kantakse sellele blokeerimisseadmele alles vasakpoolsed mälulehed. Selle tulemuseks on vähem vahetuskasutust ja see aitab pikendada ka kõvaketta eluiga.

Lingid ja viited

Linuxi mäluhalduse seeria

Tänusõnad

Autor soovib tänada Mandy Neumeyeri ja Gerold Rupprechti toetuse eest selle artikli ettevalmistamisel.

Microsoft Sculpt Touch juhtmeta hiirte ülevaade
Lugesin hiljuti Microsoft Sculpt Touch juhtmevaba hiir ja otsustas selle osta. Pärast mõnda aega kasutamist otsustasin jagada sellega oma kogemusi. Se...
Rakenduse AppyMouse ekraanipaneel ja hiirekursor Windowsi tahvelarvutitele
Tahvelarvutite kasutajad tunnevad hiirekursorit sageli puudust, eriti kui neil on kombeks sülearvuteid kasutada. Puutetundliku ekraaniga nutitelefonid...
Hiire keskmine nupp ei tööta Windows 10-s
The hiire keskmine nupp aitab teil sirvida pikki rohke andmega veebisaite ja ekraane. Kui see peatub, siis lõpuks kasutate kerimiseks klaviatuuri, mis...