Memorija

Optimizacija upotrebe Linux memorije

Optimizacija upotrebe Linux memorije
U prvom dijelu ove serije detaljnije smo pogledali razmjenu prostora, a drugi dio se bavio alatima i naredbama za upravljanje memorijom. Sada ćemo razgovarati o različitim parametrima i strategijama za optimizaciju memorije i njezine upotrebe općenito. To pokriva količinu memorije, ubrzanje pristupa i internu strategiju korištenja.

Količina memorije

Kao što je već raspravljeno u prvom dijelu, cjelokupna memorija naziva se virtualnom memorijom, a sastoji se i od fizičke memorije i prostora za zamjenu. Dostupnost fizičke memorije ovisi o hardveru koji je ugrađen u stroj, kao i o tome koliko memorije procesor zapravo može adresirati. Kao primjer, 32-bitni operativni sustavi imaju ograničenje od 4G memorije, samo (2 ^ 32bit), dok operativni sustavi temeljeni na 64bitima teoretski dopuštaju do 16 EB (2 ^ 64bit).

Da budemo precizni, ograničenje je matična ploča sa samim procesorom, memorijski moduli koje ta matična ploča podržava i određeni memorijski moduli koji su priključeni u memorijske utore na matičnoj ploči. Jedan od načina za maksimiziranje dostupne memorije sustava je upotreba sličnih memorijskih modula koji imaju najveću moguću veličinu. Drugi način je korištenje zamjenske memorije kako je već objašnjeno u prvom dijelu.

Pristup memoriji

Dalje, u obzir dolazi poboljšanje brzine pristupa memorije. Isprva fizičko ograničenje daje sam memorijski modul. Ne možete prijeći fizičke granice hardvera. U drugo, ramdisk, a u treće korištenje zRAM-a može ubrzati pristup memoriji. Dalje ćemo razmotriti ove dvije tehnologije.

Stvaranje RAM diska

Ramdisk je blok memorije s kojim operativni sustav rukuje poput fizičkog uređaja za pohranu podataka - tvrdi disk koji se u cijelosti čuva u memoriji. Ovaj privremeni uređaj postoji čim se sustav pokrene i omogući ramdisk, a sustav ili onemogući ramdisk ili se isključi. Imajte na umu da se podaci koje pohranite na takav ramdisk gube nakon isključivanja stroja.

Možete stvoriti dinamički ramdisk putem datotečnog sustava tmpfs i putem datotečnog sustava ramfs. Obje se tehnologije međusobno značajno razlikuju. Prvo, dinamičko znači da se memorija za ramdisk dodjeljuje na temelju njegove upotrebe (vrijedi za obje metode). Sve dok na njemu ne pohranite podatke, veličina diska je 0.

Stvaranje dinamičkog ramdiska putem tmpfs-a je kako slijedi:

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

Stvaranje dinamičkog ramdiska putem ramfsa je kako slijedi:

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

Drugo, upotreba tmpfs-a i ako nije izričito navedeno, veličina diska ograničena je na 50% fizičke memorije. Suprotno tome, ramdisk zasnovan na ramfs-u nema takva ograničenja.

Stvaranje dinamičkog ramdiska putem tmpfs-a s relativnom veličinom od 20% fizičke memorije je kako slijedi:

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

Stvaranje dinamičkog ramdiska putem tmpfs-a s fiksnom veličinom od 200M fizičke memorije je kako slijedi:

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

Treće, obje se metode na drugačiji način bave zamjenom. U slučaju da sustav dosegne ograničenje memorije ramdiska na temelju tmpfs, podaci s ramdiska zamjenjuju se. To onemogućava ideju brzog pristupa. S druge strane, operativni sustav daje prioritet i sadržaju i traženim memorijskim stranicama ramdiska na temelju ramfsa, zadržava ih u memoriji i zamjenjuje preostale memorijske stranice na disk.

U gornjim primjerima koje smo koristili / media / ramdisk kao točku montiranja. Što se tiče redovnih podataka, jedini dio Linux datotečnog sustava koji se preporučuje za upotrebu na RAM disku je / tmp. Ovaj direktorij pohranjuje samo privremene podatke koji se ne zadržavaju. Stvaranje trajnog ramdiska koji pohranjuje datotečni sustav / tmp zahtijeva dodatni unos u datoteku / etc / fstab kako slijedi (na temelju ramfova):

ramfs / tmp ramfs zadane vrijednosti 0 0

Sljedeći put kad pokrenete svoj Linux sustav, ramdisk će biti automatski omogućen.

Korištenje zRAM-a

zRAM znači virtualna zamjena komprimirana u RAM-u i stvara komprimirani blok uređaj izravno u fizičkoj memoriji. zRAM stupa u akciju (upotrebu) čim u sustavu više nema dostupnih stranica s fizičkom memorijom. Zatim Linux jezgra pokušava pohraniti stranice kao komprimirane podatke na zRAM uređaju.

Trenutno ne postoji paket dostupan za Debian GNU / Linux, već za Ubuntu. Nazvan je zram-config. Instalirajte paket i postavite zRAM uređaj jednostavnim pokretanjem odgovarajuće usluge systemd na sljedeći način:

# systemctrl start zram-config

Kao što je dato rezultatom swapon-i, uređaj je aktivan kao dodatna Swap particija. Za zRAM se automatski dodjeljuje veličina 50% memorije (vidi sliku 1). Trenutno ne postoji način da se navede drugačija vrijednost za zRAM koja će se dodijeliti.

Da biste vidjeli više detalja o komprimiranoj swap particiji, upotrijebite naredbu zramctl. Slika 2 prikazuje naziv uređaja, algoritam kompresije (LZO), veličinu swap particije, veličinu podataka na disku i njezinu komprimiranu veličinu kao i broj tokova kompresije (zadana vrijednost: 1).

Strategija korištenja

Zatim se usredotočujemo na strategiju korištenja memorije. Postoji nekoliko parametara koji utječu na ponašanje upotrebe i distribucije memorije. To uključuje veličinu memorijskih stranica - na 64-bitnim sustavima iznosi 4M. Dalje, parametarska zamjena igra ulogu. Kao što je već objašnjeno u prvom dijelu, ovaj parametar kontrolira relativnu težinu koja se pridaje zamjeni iz runtime memorije, za razliku od ispuštanja memorijskih stranica iz predmemorije sistemskih stranica. Također, ne bismo trebali zaboraviti i predmemoriranje i poravnanje memorijske stranice.

Koristite programe koji zahtijevaju manje memorije

Posljednje, ali ne najmanje važno, korištenje memorije ovisi o samim programima. Većina ih je povezana sa zadanom C knjižnicom (standardni LibC). Kao programer, da biste minimalizirali svoj binarni kod, razmislite o tome da umjesto toga koristite alternativu i mnogo manju C biblioteku. Na primjer, postoje dietlibc [1], uClibc [2] i musl lib C [3]. Web stranica programera musl lib C sadrži opsežnu usporedbu [4] u vezi s tim knjižnicama u smislu najmanjeg mogućeg statičkog C programa, usporedbu značajki kao i odgovarajuća okruženja za izgradnju i podržane hardverske arhitekture.

Kao korisnik možda nećete morati kompajlirati svoje programe. Razmislite o traženju manjih programa i različitih okvira koji zahtijevaju manje resursa. Kao primjer možete upotrijebiti XFCE Desktop Environment umjesto KDE ili GNOME.

Zaključak

Postoji podosta mogućnosti za promjenu upotrebe memorije na bolje. To se kreće od zamjene do kompresije na temelju zRAM-a, kao i postavljanje diska ili odabir drugog okvira.

Poveznice i reference

Serija Linux za upravljanje memorijom

Zahvalnice

Autor želi zahvaliti Axelu Beckertu i Geroldu Rupprechtu na podršci tijekom pripreme ovog članka.

Dodajte geste miša u sustav Windows 10 pomoću ovih besplatnih alata
Posljednjih godina računala i operativni sustavi uvelike su se razvili. Bilo je vrijeme kada su korisnici morali koristiti naredbe za navigaciju kroz ...
Kontrolirajte i upravljajte kretanjem miša između više monitora u sustavu Windows 10
Dvostruki zaslon upravitelja miša omogućuje vam kontrolu i konfiguriranje kretanja miša između više monitora, usporavajući njegovo kretanje blizu gran...
WinMouse vam omogućuje prilagodbu i poboljšanje kretanja pokazivača miša na Windows računalu
Ako želite poboljšati zadane funkcije pokazivača miša, upotrijebite besplatni program WinMouse. Dodaje više značajki koje će vam pomoći da na najbolji...