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):
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-configKao š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
- [1] dietlibc, https: // www.fefe.de / dietlibc /
- [2] uClibc, https: // uclibc.org /
- [3] musl lib C, http: // www.musl-libc.org /
- [4] usporedba C knjižnica, http: // www.etalabi.net / compare_libcs.html
Serija Linux za upravljanje memorijom
- Dio 1: Upravljanje memorijom jezgre Linux: Zamjena prostora
- Dio 2: Naredbe za upravljanje Linux memorijom
- Dio 3: Optimizacija upotrebe Linux memorije
Zahvalnice
Autor želi zahvaliti Axelu Beckertu i Geroldu Rupprechtu na podršci tijekom pripreme ovog članka.