Atmiņas apjoms
Kā jau tika apspriests pirmajā daļā, visu atmiņu sauc par virtuālo atmiņu, un tā sastāv gan no fiziskās atmiņas, gan no mijmaiņas vietas. Fiziskās atmiņas pieejamība ir atkarīga no datorā iebūvētās aparatūras, kā arī no tā, cik daudz atmiņas procesors var adresēt. Piemēram, 32 bitu operētājsistēmām ir tikai 4G atmiņas ierobežojums (2 ^ 32 biti), turpretī uz 64 bitu operētājsistēmas teorētiski pieļauj līdz 16 EB (2 ^ 64 biti).
Precīzāk, ierobežojums ir mātesplatē ar pašu procesoru, atmiņas moduļiem, kurus atbalsta šī mātesplatē, un īpašiem atmiņas moduļiem, kas pievienoti mātesplatē esošajām atmiņas vietām. Viens no veidiem, kā maksimāli palielināt sistēmas pieejamo atmiņu, ir izmantot līdzīgus atmiņas moduļus, kuru izmērs ir pēc iespējas lielāks. Otrais veids ir izmantot mijmaiņas atmiņu, kā jau paskaidrots pirmajā daļā.
Piekļuve atmiņai
Pēc tam tiek apsvērta atmiņas piekļuves ātruma uzlabošana. Sākumā fizisko robežu piešķir pats atmiņas modulis. Jūs nevarat iet zem aparatūras fiziskajām robežām. Otrkārt, RAM disks un, treškārt, zRAM izmantošana var paātrināt piekļuvi atmiņai. Mēs sīkāk apspriedīsim šīs divas tehnoloģijas.
Ramdiska izveide
Atmiņas disks ir atmiņas bloks, kuru operētājsistēma apstrādā kā fizisku ierīci datu glabāšanai - cietais disks, kas tiek pilnībā saglabāts atmiņā. Šī pagaidu ierīce pastāv, tiklīdz sistēma startē un iespējo ramdisku, un sistēma vai nu atspējo ramdisku, vai arī izslēdzas. Paturiet prātā, ka dati, kurus glabājat šādā RAMDISK, tiek zaudēti pēc iekārtas izslēgšanas.
Jūs varat izveidot dinamisku ramdisk, izmantojot tmpfs failu sistēmu un caur ramfs failu sistēmu. Abas tehnoloģijas ievērojami atšķiras viena no otras. Pirmkārt, dinamisks nozīmē, ka RAM diska atmiņa tiek piešķirta, pamatojoties uz tā lietojumu (taisnība abām metodēm). Kamēr jūs tajā neglabājat datus, ramdiska lielums ir 0.
Dinamiskā ramdiska izveide, izmantojot tmpfs, ir šāda:
# mkdir / media / ramdisk# mount -t tmpfs none / media / ramdisk
Dinamiskā ramdiska izveidošana, izmantojot ramfs, ir šāda:
# mkdir / media / ramdisk# mount -t ramfs ramfs / media / ramdisk
Otrkārt, izmantojot tmpfs un ja nav skaidri norādīts, ramdiska lielums ir ierobežots līdz 50% no fiziskās atmiņas. Turpretī ramdiskam, kura pamatā ir ramfs, nav šāda ierobežojuma.
Dinamiskā ramdiska izveide, izmantojot tmpfs, ar relatīvo izmēru 20% no fiziskās atmiņas, ir šāda:
# mkdir / media / ramdisk# mount -t tmpfs -o size = 20% none / media / ramdisk
Dinamiskā ramdiska izveide, izmantojot tmpfs ar fiksētu fiziskās atmiņas lielumu 200M, ir šāda:
# mkdir / media / ramdisk# mount -t tmpfs -o size = 200M none / media / ramdisk
Treškārt, abas metodes mijmaiņu apstrādā citādi. Gadījumā, ja sistēma sasniedz atmiņas ierobežojumu ramdiskam, pamatojoties uz tmpfs, dati no ramdiska tiek apmainīti. Tas iedragā ideju par ātru piekļuvi. No otras puses, operētājsistēma piešķir prioritāti gan ramdiska saturam, gan pieprasītajām atmiņas lapām, pamatojoties uz ramfiem, saglabā to atmiņā un pārceļ atlikušās atmiņas lapas uz disku.
Iepriekš minētajos piemēros mēs esam izmantojuši / media / ramdisk
kā stiprinājuma punktu. Attiecībā uz parastajiem datiem vienīgā Linux failu sistēmas daļa, kuru ieteicams izmantot ramdiskā, ir / tmp
. Šajā direktorijā tiek glabāti tikai pagaidu dati, kas nav saglabājušies. Lai izveidotu pastāvīgu ramdisku, kurā glabājas / tmp failu sistēma, failā ir nepieciešams papildu ieraksts / etc / fstab
šādi (pamatojoties uz ramfs):
Nākamreiz, kad palaidīsit Linux sistēmu, automātiski tiks iespējots ramdisk.
Izmantojot zRAM
zRAM nozīmē virtuālo mijmaiņu, kas saspiesta RAM, un izveido saspiestu bloku ierīci tieši fiziskajā atmiņā. zRAM sāk darboties (lieto), tiklīdz sistēmā vairs nav pieejamas fiziskās atmiņas lapas. Pēc tam Linux kodols mēģina saglabāt lapas kā saspiestu datus zRAM ierīcē.
Pašlaik Debian GNU / Linux nav pieejama pakete, bet gan Ubuntu. Tā nosaukums ir zram-config. Instalējiet pakotni un iestatiet zRAM ierīci, vienkārši startējot atbilstošo sistēmasd pakalpojumu šādi:
# systemctrl sākt zram-configKā norāda izlaide mijmaiņas -s,
ierīce ir aktīva kā papildu nodalījuma maiņa. Automātiski zRAM tiek piešķirts 50% atmiņas lielums (skat. 1. attēlu). Pašlaik nav iespējams norādīt atšķirīgu piešķiramo zRAM vērtību.
Lai skatītu sīkāku informāciju par saspiesto mijmaiņas nodalījumu, izmantojiet komandu zramctl
. 2. attēlā parādīts ierīces nosaukums, saspiešanas algoritms (LZO), mijmaiņas nodalījuma lielums, diska datu lielums un saspiestais lielums, kā arī saspiešanas plūsmu skaits (noklusējuma vērtība: 1).
Lietošanas stratēģija
Tālāk mēs koncentrējamies uz atmiņas izmantošanas stratēģiju. Ir daži parametri, kas ietekmē atmiņas izmantošanas un izplatīšanas darbību. Tas ietver atmiņas lapu lielumu - 64 bitu sistēmās tas ir 4M. Pēc tam lomu spēlē parametra mainīgums. Kā jau paskaidrots pirmajā daļā, šis parametrs kontrolē relatīvo svaru, kas piešķirts izpildlaika atmiņas nomaiņai, nevis atmiņas lapu nomešanai no sistēmas lapu kešatmiņas. Tāpat nevajadzētu aizmirst gan kešatmiņu, gan atmiņas lapu izlīdzināšanu.
Izmantojiet programmas, kurām nepieciešams mazāk atmiņas
Visbeidzot, bet ne mazāk svarīgi, atmiņas izmantošana ir atkarīga no pašas programmas. Lielākā daļa no tām ir saistītas ar noklusējuma C bibliotēku (standarta LibC). Kā izstrādātājs, lai samazinātu bināro kodu, apsveriet iespēju izmantot alternatīvu un daudz mazāku C bibliotēku. Piemēram, ir dietlibc [1], uClibc [2] un musl lib lib [3]. Izstrādātāja vietne musl lib C satur plašu šo bibliotēku salīdzinājumu [4] attiecībā uz iespējami mazāko statisko C programmu, funkciju salīdzinājumu, kā arī atbilstošo būvēšanas vidi un atbalstītās aparatūras arhitektūras.
Jums kā lietotājam, iespējams, nebūs jāapkopo savas programmas. Apsveriet iespēju meklēt mazākas programmas un dažādas struktūras, kurām nepieciešami mazāk resursu. Kā piemēru KDE vai GNOME vietā varat izmantot XFCE darbvirsmas vidi.
Secinājums
Pastāv diezgan daudz iespēju mainīt atmiņas lietojumu uz labo pusi. Tas svārstās no mijmaiņas līdz saspiešanai, pamatojoties uz zRAM, kā arī ramdiska iestatīšanu vai citas sistēmas izvēli.
Saites un atsauces
- [1] dietlibc, https: // www.fefe.de / dietlibc /
- [2] uClibc, https: // uclibc.org /
- [3] musl lib C, http: // www.musl-libc.org /
- [4] C bibliotēku salīdzinājums, http: // www.etalabs.net / salīdzināt_libcs.html
Linux atmiņas pārvaldības sērija
- 1. daļa: Linux kodola atmiņas pārvaldība: mainīt vietu
- 2. daļa: komandas Linux atmiņas pārvaldībai
- 3. daļa: Linux atmiņas izmantošanas optimizēšana
Pateicības
Autore vēlas pateikties Akselam Bekertam un Geroldam Rupprechtam par atbalstu, sagatavojot šo rakstu.