Atmiņa

Linux atmiņas izmantošanas optimizēšana

Linux atmiņas izmantošanas optimizēšana
Šīs sērijas pirmajā daļā mēs tuvāk aplūkojām vietu Apmainīt, bet otrajā daļā - rīki un komandas atmiņas pārvaldībai. Tagad mēs apspriedīsim dažādus parametrus un stratēģijas, lai optimizētu atmiņu un tās izmantošanu kopumā. Tas attiecas uz atmiņas apjomu, piekļuves paātrinājumu un iekšējās izmantošanas stratēģiju.

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):

ramfs / tmp ramfs pēc noklusējuma 0 0

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-config

Kā 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

Linux atmiņas pārvaldības sērija

Pateicības

Autore vēlas pateikties Akselam Bekertam un Geroldam Rupprechtam par atbalstu, sagatavojot šo rakstu.

Kā izstrādāt spēli Linux
Pirms desmit gadiem maz Linux lietotāju varētu paredzēt, ka viņu iecienītā operētājsistēma kādu dienu būs populāra spēļu platforma komerciālām videosp...
Komerciālo spēļu dzinēju atvērtā koda porti
Bezmaksas, atvērtā koda un starpplatformu spēļu dzinēju atpūtu var izmantot, lai spēlētu vecos, kā arī dažus no diezgan nesenajiem spēļu nosaukumiem. ...
Labākās komandrindas spēles Linux
Komandrinda nav tikai lielākais sabiedrotais, lietojot Linux, bet tā var būt arī izklaides avots, jo to var izmantot, lai spēlētu daudzas jautras spēl...