Mälu maht
Nagu esimeses osas juba räägitud, nimetatakse kogu mälu virtuaalseks mäluks ja see koosneb nii füüsilisest kui ka vahetatavast ruumist. Füüsilise mälu kättesaadavus sõltub nii riistvarast, mis on masinasse sisse ehitatud, kui ka sellest, kui palju mälu protsessor tegelikult suudab lahendada. Näiteks on 32-bitistel operatsioonisüsteemidel ainult 4G mälu (2 ^ 32-bitine), samas kui 64-bitistel operatsioonisüsteemidel on teoreetiliselt lubatud kuni 16 EB (2 ^ 64-bitine).
Täpsustuseks võib öelda, et piiranguks on emaplaat koos protsessori enda, mälumoodulid, mida see emaplaat toetab, ja konkreetsed mälumoodulid, mis on ühendatud emaplaadi mälupesadega. Üks võimalus süsteemi vaba mälu maksimeerimiseks on kasutada sarnaseid mälumooduleid, millel on võimalikult suur suurus. Teine võimalus on vahetamismälu kasutamine, nagu juba esimeses osas selgitatud.
Juurdepääs mälule
Järgmisena tuleb arvesse võtta mälu juurdepääsu kiiruse parandamist. Algul annab füüsilise piiri mälumoodul ise. Te ei saa minna riistvara füüsilistest piiridest allapoole. Teiseks võib RAM-ketas ja kolmandaks zRAM-i kasutamine kiirendada mälule juurdepääsu. Me arutame neid kahte tehnoloogiat üksikasjalikumalt.
Ramdiski loomine
Ramdisk on mäluplok, mida operatsioonisüsteem käsitab nagu füüsiline seade andmete salvestamiseks - kõvaketas, mida hoitakse täielikult mälus. See ajutine seade on olemas kohe, kui süsteem käivitub ja lubab ramdiski ning süsteem kas keelab ramdiski või lülitub välja. Pidage meeles, et sellisele ramdiskile salvestatud andmed kaovad pärast masina seiskamist.
Dünaamilise ramdiski saate luua failisüsteemi tmpfs ja failisüsteemi ramfs kaudu. Mõlemad tehnoloogiad erinevad üksteisest oluliselt. Esiteks tähendab dünaamiline, et ramdiski mälu eraldatakse selle kasutamise põhjal (kehtib mõlema meetodi puhul). Niikaua kui te sellele andmeid ei salvesta, on ramdiski suurus 0.
Dünaamilise ramdiski loomine tmpfs kaudu on järgmine:
# mkdir / media / ramdisk# mount -t tmpfs none / media / ramdisk
Dünaamilise ramdiski loomine ramfide kaudu on järgmine:
# mkdir / media / ramdisk# mount -t ramfs ramfs / media / ramdisk
Teiseks, tmpf-de kasutamine ja kui pole selgesõnaliselt määratletud, on ramdiski suurus piiratud 50% -ga. Seevastu ramfidel põhineval ramdiskil pole sellist piirangut.
Dünaamilise ramdiski loomine tmpfs kaudu suhtelise suurusega 20% füüsilisest mälust on järgmine:
# mkdir / media / ramdisk# mount -t tmpfs -o size = 20% none / media / ramdisk
Dünaamilise ramdiski loomine tmpfs kaudu, mille fikseeritud suurus on 200M füüsilist mälu, on järgmine:
# mkdir / media / ramdisk# mount -t tmpfs -o size = 200M none / media / ramdisk
Kolmandaks käsitlevad mõlemad meetodid vahetamist erinevalt. Kui süsteem jõuab tmpf-de põhjal ramdiski mälupiiranguni, vahetatakse andmed ramdiskilt. See rikub kiire juurdepääsu ideed. Teiselt poolt seab operatsioonisüsteem ramfide põhjal esikohale nii ramdiski sisu kui ka taotletud mälulehed, hoiab seda mälus ja vahetab ülejäänud mälulehed kettale.
Eespool toodud näidetes oleme kasutanud / media / ramdisk
kinnituskohana. Tavapäraste andmete osas on Linuxi failisüsteemi ainus osa, mida soovitatakse kasutada ramdiskil / tmp
. Selles kataloogis salvestatakse ainult ajutised andmed, mis ei püsi. Püsiva ramdiski loomine, mis salvestab / tmp-failisüsteemi, nõuab failis täiendavat sisestust / etc / fstab
järgmiselt (ramfide põhjal):
Järgmisel Linuxi süsteemi käivitamisel lubatakse ramdisk automaatselt.
ZRAM-i kasutamine
zRAM tähendab RAM-is tihendatud virtuaalset vahetust ja loob tihendatud plokiseadme otse füüsilisse mällu. zRAM hakkab toimima (kasutama) kohe, kui süsteemis pole enam füüsilise mälu lehti saadaval. Seejärel proovib Linuxi kernel salvestada lehti tihendatud andmetena zRAM-seadmesse.
Praegu pole Debiani GNU / Linuxi jaoks saadaval ühtegi paketti, vaid Ubuntu. Selle nimi on zram-config. Installige pakett ja seadistage zRAM-seade, käivitades vastava süsteemiteenuse järgmiselt:
# systemctrl käivitage zram-configNagu annab väljund swapon -s,
seade on aktiivne täiendava vahetuspartitsioonina. Automaatselt eraldatakse zRAM-ile 50% mälust (vt joonis 1). Praegu ei ole võimalik määrata eraldatava zRAM-i jaoks muud väärtust.
Tihendatud vahetuspartitsiooni kohta lisateabe saamiseks kasutage käsku zramctl
. Joonisel 2 on näidatud seadme nimi, tihendusalgoritm (LZO), vahetuspartitsiooni suurus, kettal olevate andmete suurus ja tihendatud suurus ning tihendusvoogude arv (vaikeväärtus: 1).
Kasutamisstrateegia
Järgmisena keskendume mälukasutuse strateegiale. Mälukasutuse ja levitamise käitumise mõjutamiseks on mõned parameetrid. See hõlmab ka mälulehekülgede suurust - 64-bitistes süsteemides on see 4M. Järgmisena mängib rolli parameetri vahetus. Nagu esimeses osas juba selgitatud, kontrollib see parameeter käitusmälu väljavahetamisele antud suhtelist kaalu, vastandina mälulehekülgede kukutamisele süsteemilehe vahemälust. Samuti ei tohiks me unustada nii vahemällu salvestamist kui ka mälulehe joondamist.
Kasutage programme, mis vajavad vähem mälu
Lõpuks, kuid mitte vähem oluline, sõltub mälu kasutamine programmidest endast. Enamik neist on seotud vaikimisi C teegiga (tavaline LibC). Arendajana kaaluge binaarkoodi minimeerimiseks alternatiivse ja hoopis väiksema C-teegi kasutamist. Näiteks on dietlibc [1], uClibc [2] ja musl lib C [3]. Arendaja veebileht musl lib C sisaldab nende teekide põhjalikku võrdlust [4] võimalikult väikse staatilise C programmi, funktsioonide võrdluse, vastavate ehituskeskkondade ja toetatud riistvaraarhitektuuride osas.
Kasutajana ei pea te võib-olla oma programme koostama. Kaaluge väiksemate programmide ja erinevate raamistike otsimist, mis nõuavad vähem ressursse. Näiteks võite KDE või GNOME asemel kasutada XFCE töölauakeskkonda.
Järeldus
Mälu kasutamise paremaks muutmiseks on üsna palju võimalusi. See ulatub nii vahetusest kuni tihendamiseni, mis põhineb zRAM-il, kui ka ramdiski seadistamise või mõne muu raamistiku valimisega.
Lingid ja viited
- [1] dietlibc, https: // www.fefe.de / dietlibc /
- [2] uClibc, https: // uclibc.org /
- [3] musl lib C, http: // www.musl-libc.org /
- [4] C-teekide võrdlus, http: // www.etalabid.net / võrrelda_libcs.HTML
Linuxi mäluhalduse seeria
- 1. osa: Linuxi tuuma mäluhaldus: ruumi vahetamine
- 2. osa: Linuxi mälu haldamise käsud
- 3. osa: Linuxi mälukasutuse optimeerimine
Tänusõnad
Autor soovib tänada Axel Beckertit ja Gerold Rupprechti toetuse eest selle artikli ettevalmistamisel.