Atmintis

„Linux“ atminties naudojimo optimizavimas

„Linux“ atminties naudojimo optimizavimas
Pirmoje šios serijos dalyje mes atidžiau pažvelgėme į „Swap“ erdvę, o antrojoje dalyje aptarėme įrankius ir komandas, skirtas atminties valdymui. Dabar aptarsime įvairius parametrus ir strategijas, kaip optimizuoti atmintį ir jos naudojimą apskritai. Tai apima atminties kiekį, prieigos pagreitį ir vidinio naudojimo strategiją.

Atminties kiekis

Kaip jau buvo aptarta pirmojoje dalyje, visa atmintis vadinama virtualia atmintimi ir susideda iš fizinės atminties ir apsikeitimo vietos. Fizinės atminties prieinamumas priklauso nuo aparatūros, kuri įmontuota mašinoje, taip pat nuo to, kiek atminties procesorius gali iš tikrųjų adresuoti. Pavyzdžiui, 32 bitų operacinėse sistemose yra tik 4G atminties riba (2 ^ 32 bitų), o 64 bitų pagrindu veikiančios operacinės sistemos teoriškai leidžia iki 16 EB (2 ^ 64 bitų).

Tiksliau, apribojimas yra pagrindinė plokštė su pačiu procesoriumi, tos pagrindinės plokštės palaikomi atminties moduliai ir konkretūs atminties moduliai, prijungti prie pagrindinės plokštės atminties angų. Vienas iš būdų maksimaliai padidinti turimą sistemos atmintį yra naudoti panašius atminties modulius, kurių dydis yra kuo didesnis. Antrasis būdas yra naudoti apsikeitimo atmintį, kaip jau paaiškinta pirmojoje dalyje.

Prieiga prie atminties

Toliau atsižvelgiama į atminties prieigos greičio pagerinimą. Iš pradžių fizinę ribą suteikia pats atminties modulis. Negalite eiti žemiau fizinės aparatinės įrangos ribų. Antra, ramdiską, trečią - naudojimas „zRAM“ gali pagreitinti atminties prieigą. Mes išsamiau aptarsime šias dvi technologijas.

Kurti RAM diską

„Ramdisk“ yra atminties blokas, kurį operacinė sistema tvarko kaip fizinį įrenginį duomenims saugoti - kietasis diskas, kuris visiškai laikomas atmintyje. Šis laikinas įrenginys egzistuoja iškart, kai tik sistema paleidžia ir įgalina „ramdisk“, o sistema arba išjungia, arba išjungia. Atminkite, kad duomenys, kuriuos saugote tokiame ramdiske, prarandami išjungus įrenginį.

Dinaminį „ramdisk“ galite sukurti per „tmpfs“ failų sistemą ir per „ramfs“ failų sistemą. Abi technologijos labai skiriasi viena nuo kitos. Pirma, dinamiška reiškia, kad RAM disko atmintis paskirstoma atsižvelgiant į jos naudojimą (teisinga abiem būdais). Jei jame nesaugote duomenų, ramdisko dydis yra 0.

Dinaminį ramdiską per tmpfs galite sukurti taip:

# mkdir / media / ramdisk
# mount -t tmpfs none / media / ramdisk

Dinaminį ramdiską per ramfs galite sukurti taip:

# mkdir / media / ramdisk
# mount -t ramfs ramfs / media / ramdisk

Antra, naudojant tmpfs ir, jei nėra aiškiai nurodyta, ramdisko dydis ribojamas iki 50% fizinės atminties. Priešingai, ramdiskui, pagrįstam ramfs, tokio apribojimo nėra.

Dinaminio RAM disko sukūrimas naudojant tmpfs, kurio santykinis dydis yra 20% fizinės atminties, yra toks:

# mkdir / media / ramdisk
# mount -t tmpfs -o size = 20% none / media / ramdisk

Dinaminio RAM disko sukūrimas naudojant tmpfs su fiksuoto dydžio 200M fizinės atminties yra toks:

# mkdir / media / ramdisk
# mount -t tmpfs -o size = 200M none / media / ramdisk

Trečia, abu metodai keičia mainus kitaip. Jei sistema pasiekia atminties limitą, pagrįstą tmpfs, atminties limitas, duomenys iš ramdisko keičiami. Tai pažeidžia greitos prieigos idėją. Kita vertus, operacinė sistema teikia pirmenybę tiek ramdisko turiniui, tiek prašomiems atminties puslapiams, remiantis ramfais, juos laiko atmintyje ir likusius atminties puslapius keičia į diską.

Aukščiau pateiktuose pavyzdžiuose mes naudojome / media / ramdisk kaip tvirtinimo taškas. Kalbant apie įprastus duomenis, vienintelė Linux failų sistemos dalis, kurią rekomenduojama naudoti ramdiske, yra / tmp. Šiame kataloge saugomi tik laikini duomenys, kurie neišlieka. Norint sukurti nuolatinį RAM diską, kuriame saugoma / tmp failų sistema, reikia papildomo įrašo faile / etc / fstab taip (remiantis ramfais):

ramfs / tmp ramfs numatytasis 0 0

Kitą kartą paleidus „Linux“ sistemą, ramdiskas bus įjungtas automatiškai.

Naudojant zRAM

„zRAM“ reiškia „Virtual Swap“, suspaustą RAM, ir sukuria suspaustą blokinį įrenginį tiesiai į fizinę atmintį. „zRAM“ pradeda veikti (naudoti), kai tik sistemoje nebėra fizinės atminties puslapių. Tada „Linux“ branduolys bando išsaugoti puslapius kaip suglaudintus duomenis „zRAM“ įrenginyje.

Šiuo metu nėra Debian GNU / Linux paketo, bet tik „Ubuntu“. Jis pavadintas „zram-config“. Įdiekite paketą ir nustatykite „zRAM“ įrenginį paprasčiausiai paleisdami atitinkamą „systemd“ paslaugą taip:

# systemctrl pradėti „zram-config“

Kaip duoda išvestis swapon -s, prietaisas yra aktyvus kaip papildomas „Swap“ skaidinys. Automatiškai zRAM priskiriama 50% atminties (žr. 1 pav.). Šiuo metu nėra galimybės nurodyti kitokios skiriamos zRAM vertės.

Norėdami pamatyti daugiau informacijos apie suglaudintą apsikeitimo skaidinį, naudokite komandą zramctl. 2 paveiksle parodytas įrenginio pavadinimas, glaudinimo algoritmas (LZO), apsikeitimo skaidinio dydis, diske esančių duomenų dydis ir suglaudintas dydis, taip pat suspaudimo srautų skaičius (numatytoji vertė: 1).

Naudojimo strategija

Toliau mes sutelksime dėmesį į atminties naudojimo strategiją. Yra keli parametrai, turintys įtakos atminties naudojimo ir paskirstymo elgsenai. Tai apima atminties puslapių dydį - 64 bitų sistemose jis yra 4M. Tada vaidmuo tenka parametro „swappiness“. Kaip jau paaiškinta pirmojoje dalyje, šis parametras kontroliuoja santykinį svorį, skiriamą vykdymo laiko atminties keitimui, o ne atminties puslapių numetimui iš sistemos puslapių talpyklos. Taip pat neturėtume pamiršti ir talpyklos, ir atminties puslapių lygiavimo.

Naudokite programas, kurioms reikia mažiau atminties

Paskutinis, bet ne mažiau svarbus dalykas - atminties naudojimas priklauso nuo pačios programos. Dauguma jų susieti su numatytąja C biblioteka (standartine LibC). Kaip kūrėjas, norėdami sumažinti dvejetainį kodą, apsvarstykite galimybę naudoti alternatyvią ir daug mažesnę C biblioteką. Pavyzdžiui, yra dietlibc [1], uClibc [2] ir musl lib C [3]. Kūrėjo svetainėje „musl lib C“ pateikiamas išsamus šių bibliotekų palyginimas [4] pagal mažiausią įmanomą statinę C programą, funkcijų palyginimas, taip pat atitinkamos sukūrimo aplinkos ir palaikomos aparatinės įrangos architektūros.

Jums, kaip vartotojui, gali nereikėti kurti savo programų. Apsvarstykite galimybę ieškoti mažesnių programų ir skirtingų sistemų, reikalaujančių mažiau išteklių. Kaip pavyzdį galite naudoti XFCE darbalaukio aplinką, o ne KDE ar GNOME.

Išvada

Yra nemažai variantų, kaip pakeisti atminties naudojimą. Tai svyruoja nuo „Swap“ iki glaudinimo pagal „zRAM“, taip pat nustatant „ramdisk“ arba pasirinkus kitą sistemą.

Nuorodos ir nuorodos

„Linux“ atminties valdymo serija

Padėkos

Autorius norėtų padėkoti Axelui Beckertui ir Geroldui Rupprechtui už paramą rengiant šį straipsnį.

Įdiekite naujausią „OpenRA“ strategijos žaidimą „Ubuntu Linux“
„OpenRA“ yra „Free / Free Real Time Strategy“ žaidimų variklis, atkuriantis ankstyvuosius „Westwood“ žaidimus, tokius kaip klasikinis „Command & Conqu...
Įdiekite naujausią „Dolecin Emulator“, skirtą „Gamecube“ ir „Wii“, sistemoje „Linux“
„Delfinų emuliatorius“ leidžia žaisti pasirinktus „Gamecube“ ir „Wii“ žaidimus „Linux“ asmeniniuose kompiuteriuose (PC). „Dolphin Emulator“ yra laisv...
Kaip naudoti „GameConqueror Cheat Engine“ sistemoje „Linux“
Straipsnyje pateikiamas „GameConqueror“ apgaulės variklio naudojimo „Linux“ vadove. Daugelis žaidėjų, žaidžiančių sistemoje „Windows“, dažnai naudoja ...