Pamäť

Optimalizácia využitia pamäte Linux

Optimalizácia využitia pamäte Linux
V prvej časti tejto série sme sa bližšie pozreli na priestor Swap a druhá časť sa zaoberala nástrojmi a príkazmi na správu pamäte. Teraz si povieme niečo o rôznych parametroch a stratégiách optimalizácie pamäte a jej využitia všeobecne. Toto pokrýva množstvo pamäte, akceleráciu prístupu a stratégiu interného používania.

Množstvo pamäte

Ako už bolo spomenuté v prvej časti, celá pamäť sa nazýva virtuálna pamäť a pozostáva z fyzickej pamäte a odkladacieho priestoru. Dostupnosť fyzickej pamäte závisí od hardvéru zabudovaného do stroja a od skutočnej pamäte, ktorú dokáže procesor vyriešiť. Napríklad 32bitové operačné systémy majú limit iba 4G pamäte (2 ^ 32bit), zatiaľ čo operačné systémy založené na 64bitoch teoreticky umožňujú až 16 EB (2 ^ 64bit).

Aby sme boli presní, obmedzením je základná doska so samotným procesorom, pamäťové moduly podporované touto základnou doskou a konkrétne pamäťové moduly zapojené do pamäťových slotov na základnej doske. Jedným zo spôsobov, ako maximalizovať dostupnú pamäť systému, je použitie podobných pamäťových modulov, ktoré majú čo najväčšiu veľkosť. Druhým spôsobom je použitie pamäte Swap, ako už bolo vysvetlené v prvej časti.

Prístup k pamäti

Ďalej prichádza do úvahy zlepšenie prístupovej rýchlosti pamäte. Fyzický limit je spočiatku daný samotným pamäťovým modulom. Nemôžete ísť pod fyzické hranice hardvéru. Po druhé, RAMDISK a po tretie použitie zRAM môže urýchliť prístup do pamäte. O týchto dvoch technológiách budeme diskutovať podrobnejšie.

Vytvorenie ramdisku

Ramdisk je blok pamäte, s ktorým operačný systém zaobchádza ako s fyzickým zariadením na ukladanie údajov - pevný disk, ktorý je celý uchovaný v pamäti. Toto dočasné zariadenie existuje hneď po spustení systému a povolení ramdisku. Systém buď deaktivuje ramdisk, alebo vypne počítač. Majte na pamäti, že dáta, ktoré na takomto RAMDISKU uložíte, sa po vypnutí prístroja stratia.

Dynamický ramdisk môžete vytvoriť pomocou súborového systému tmpfs a prostredníctvom súborového systému ramfs. Obe technológie sa navzájom výrazne odlišujú. Po prvé, dynamický znamená, že pamäť ramdisku je alokovaná na základe jeho využitia (platí pre obe metódy). Pokiaľ na ňom neukladáte údaje, veľkosť ramdisku je 0.

Vytvorenie dynamického ramdisku pomocou tmpfs je nasledovné:

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

Vytvorenie dynamického ramdisku pomocou ramfs je nasledovné:

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

Po druhé, použitie tmpfs a pokiaľ nie je výslovne uvedené, je veľkosť ramdisku obmedzená na 50% fyzickej pamäte. Naproti tomu ramdisk založený na ramfs nemá také obmedzenie.

Vytvorenie dynamického ramdisku pomocou tmpfs s relatívnou veľkosťou 20% fyzickej pamäte je nasledovné:

# mkdir / media / ramdisk
# mount -t tmpfs -o veľkosť = 20% žiadny / media / ramdisk

Vytvorenie dynamického ramdisku pomocou tmpfs s pevnou veľkosťou 200 M fyzickej pamäte je nasledovné:

# mkdir / media / ramdisk
# mount -t tmpfs -o veľkosť = 200M žiadne / médiá / ramdisk

Po tretie, obe metódy zvládajú zámenu odlišným spôsobom. V prípade, že systém dosiahne limit pamäte ramdisku na základe tmpfs, dáta z ramdisku sa vymenia. To marí myšlienku rýchleho prístupu. Na druhej strane operačný systém uprednostňuje obsah a požadované pamäťové stránky ramdisku na základe rámcov, udržuje ich v pamäti a vymieňa zvyšné pamäťové stránky na disk.

V príkladoch vyššie sme použili / media / ramdisk ako prípojný bod. Pokiaľ ide o bežné údaje, jedinou časťou súborového systému Linux, ktorá sa odporúča používať na ramdisku, je / tmp. Tento adresár ukladá iba dočasné údaje, ktoré nepretrvávajú. Vytvorenie permanentného RAMDISKU, ktorý uchováva súborový systém / tmp, si vyžaduje ďalší záznam v súbore / etc / fstab takto (na základe rámcov):

predvolené hodnoty ramfs / tmp ramfs 0 0

Pri ďalšom zavedení systému Linux sa automaticky aktivuje ramdisk.

Pomocou zRAM

zRAM znamená Virtual Swap komprimovaný v RAM a vytvára komprimované blokové zariadenie priamo vo fyzickej pamäti. zRAM vstúpi do činnosti (používa sa) hneď, ako v systéme nebudú k dispozícii ďalšie stránky s fyzickou pamäťou. Potom sa jadro Linuxu pokúsi uložiť stránky ako komprimované údaje na zariadení zRAM.

V súčasnosti nie je k dispozícii žiadny balík pre Debian GNU / Linux, ale pre Ubuntu. Má názov zram-config. Nainštalujte balík a nastavte zariadenie zRAM jednoducho spustením príslušnej služby systemd nasledujúcim spôsobom:

# systemctrl spustiť zram-config

Ako je dané výstupom swapon -s, zariadenie je aktívne ako ďalší oddiel Vymeniť. Pre zRAM je automaticky pridelená veľkosť 50% pamäte (pozri obrázok 1). V súčasnosti neexistuje spôsob, ako určiť inú hodnotu pre pridelený zRAM.

Ak chcete zobraziť viac podrobností o komprimovanej odkladacej oblasti, použite príkaz zramctl. Obrázok 2 zobrazuje názov zariadenia, algoritmus kompresie (LZO), veľkosť odkladacej oblasti, veľkosť dát na disku a ich komprimovanú veľkosť, ako aj počet kompresných prúdov (predvolená hodnota: 1).

Stratégia použitia

Ďalej sa zameriavame na stratégiu využívania pamäte. Existuje niekoľko parametrov, ktoré ovplyvňujú správanie sa využívania a distribúcie pamäte. Patrí sem veľkosť pamäťových stránok - na 64bitových systémoch je to 4M. Ďalej hrá úlohu zámena parametrov. Ako už bolo vysvetlené v prvej časti, tento parameter riadi relatívnu váhu pripisovanú výmene runtime pamäte, na rozdiel od vyraďovania pamäťových stránok z medzipamäte systémových stránok. Tiež by sme nemali zabudnúť na ukladanie do pamäte cache a na zarovnanie stránky s pamäťou.

Používajte programy, ktoré vyžadujú menej pamäte

V neposlednom rade závisí využitie pamäte od samotných programov. Väčšina z nich je prepojená s predvolenou knižnicou C (štandardný LibC). Ako vývojár, aby ste minimalizovali svoj binárny kód, zvážte použitie alternatívnej a oveľa menšej knižnice C. Napríklad existujú dietlibc [1], uClibc [2] a musl lib C [3]. Webové stránky vývojára musl lib C obsahujú rozsiahle porovnanie [4] týchto knižníc, pokiaľ ide o najmenší možný statický program C, porovnanie funkcií, ako aj príslušné prostredia zostavenia a podporované hardvérové ​​architektúry.

Ako užívateľ nemusíte zostavovať svoje programy. Zvážte hľadanie menších programov a rôznych rámcov, ktoré vyžadujú menej zdrojov. Ako príklad môžete použiť desktopové prostredie XFCE namiesto KDE alebo GNOME.

Záver

Existuje pomerne veľa možností, ako zmeniť využitie pamäte k lepšiemu. To siaha od výmeny po kompresiu na základe zRAM, ako aj po nastavení ramdisku alebo výberu iného rámca.

Odkazy a referencie

Séria správy pamäte Linux

Poďakovanie

Autor by chcel poďakovať Axelovi Beckertovi a Geroldovi Rupprechtovi za podporu pri príprave tohto článku.

Ako zmeniť smer posúvania myši a touchpadu v systéme Windows 10
Myš a TouchpadNielenže uľahčujú výpočty, ale sú aj efektívnejšie a menej časovo náročné. Nemôžeme si predstaviť život bez týchto zariadení, ale je pra...
Ako zmeniť veľkosť, farbu a schému ukazovateľa myši a kurzora v systéme Windows 10
Ukazovateľ myši a kurzor vo Windows 10 sú veľmi dôležité aspekty operačného systému. Dá sa to povedať aj pre iné operačné systémy, takže v skutočnosti...
Hry Zadarmo a open source herné motory pre vývoj hier pre Linux
Zadarmo a open source herné motory pre vývoj hier pre Linux
Tento článok sa bude zaoberať zoznamom bezplatných a otvorených herných nástrojov, ktoré možno použiť na vývoj 2D a 3D hier v systéme Linux. Existuje ...