Paměť

Optimalizace využití paměti Linux

Optimalizace využití paměti Linux
V první části této série jsme se podrobněji podívali na prostor Swap a druhá část se zabývala nástroji a příkazy pro správu paměti. Nyní probereme různé parametry a strategie pro optimalizaci paměti a jejího využití obecně. To zahrnuje množství paměti, zrychlení přístupu a strategii interního využití.

Množství paměti

Jak již bylo popsáno v první části, celá paměť se nazývá virtuální paměť a skládá se z fyzické paměti a odkládacího prostoru. Dostupnost fyzické paměti závisí na hardwaru zabudovaném do zařízení a na skutečnosti, kolik paměti může procesor adresovat. Například 32bitové operační systémy mají limit 4G paměti, pouze (2 ^ 32bit), zatímco operační systémy založené na 64bitech teoreticky umožňují až 16 EB (2 ^ 64bit).

Přesněji řečeno, omezením je základní deska se samotným procesorem, paměťové moduly podporované touto základní deskou a konkrétní paměťové moduly, které jsou zapojeny do paměťových slotů na základní desce. Jedním ze způsobů, jak maximalizovat dostupnou paměť systému, je použít podobné paměťové moduly, které mají co největší velikost. Druhým způsobem je použití paměti Swap, jak již bylo vysvětleno v první části.

Přístup do paměti

Dále přichází v úvahu zlepšení rychlosti přístupu do paměti. Nejprve je fyzický limit dán samotným paměťovým modulem. Nemůžete jít pod fyzické hranice hardwaru. Za druhé, ramdisk a za třetí použití zRAM může urychlit přístup do paměti. Budeme diskutovat o těchto dvou technologiích podrobněji.

Vytváření ramdisku

Ramdisk je blok paměti, se kterým operační systém zachází jako s fyzickým zařízením pro ukládání dat - pevný disk, který je zcela uložen v paměti. Toto dočasné zařízení existuje, jakmile se systém spustí a povolí ramdisk, a systém buď vypne ramdisk, nebo se vypne. Pamatujte, že data uložená na takovém RAMDISKU se po vypnutí zařízení ztratí.

Dynamický ramdisk můžete vytvořit pomocí systému souborů tmpfs a prostřednictvím systému souborů ramfs. Obě technologie se od sebe výrazně liší. Nejprve dynamická znamená, že paměť pro ramdisk je alokována na základě jejího využití (platí pro obě metody). Pokud na něm neukládáte data, velikost ramdisku je 0.

Vytvoření dynamického ramdisku pomocí tmpfs je následující:

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

Vytvoření dynamického ramdisku pomocí ramfs je následující:

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

Za druhé, použití tmpfs a pokud není výslovně uvedeno, je velikost ramdisku omezena na 50% fyzické paměti. Naproti tomu ramdisk založený na ramfs nemá takové omezení.

Vytvoření dynamického ramdisku pomocí tmpfs s relativní velikostí 20% fyzické paměti je následující:

# mkdir / media / ramdisk
# mount -t tmpfs -o size = 20% žádný / media / ramdisk

Vytvoření dynamického ramdisku pomocí tmpfs s pevnou velikostí 200M fyzické paměti je následující:

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

Za třetí, obě metody zpracovávají swapování jiným způsobem. V případě, že systém dosáhne limitu paměti ramdisku na základě tmpfs, jsou data z ramdisku vyměněna. To maří myšlenku rychlého přístupu. Na druhou stranu operační systém upřednostňuje jak obsah, tak požadované stránky paměti ramdisku na základě ramfs, udržuje to v paměti a vyměňuje zbývající stránky paměti na disk.

Ve výše uvedených příkladech jsme použili / media / ramdisk jako přípojný bod. Pokud jde o běžná data, jedinou částí souborového systému Linux, která se doporučuje použít na ramdisku, je / tmp. Tento adresář ukládá pouze dočasná data, která nepřetrvávají. Vytvoření trvalého ramdisku, který ukládá systém souborů / tmp, vyžaduje další položku v souboru / etc / fstab takto (na základě RAMFS):

ramfs / tmp ramfs výchozí 0 0

Při příštím spuštění systému Linux se ramdisk automaticky aktivuje.

Pomocí zRAM

zRAM znamená Virtual Swap komprimovaný v RAM a vytváří komprimované blokové zařízení přímo ve fyzické paměti. zRAM vstoupí do činnosti (použití), jakmile v systému nejsou k dispozici žádné další stránky fyzické paměti. Poté se linuxové jádro pokusí uložit stránky jako komprimovaná data na zařízení zRAM.

V současné době není k dispozici žádný balíček pro Debian GNU / Linux, ale pro Ubuntu. Jmenuje se zram-config. Nainstalujte balíček a nastavte zařízení zRAM jednoduše spuštěním příslušné služby systemd následujícím způsobem:

# systemctrl start zram-config

Jak je dáno výstupem z swapon -s, zařízení je aktivní jako další odkládací oddíl. Automaticky je pro zRAM přidělena velikost 50% paměti (viz obrázek 1). V současné době neexistuje žádný způsob, jak určit jinou hodnotu pro přidělení zRAM.

Chcete-li zobrazit další podrobnosti o komprimovaném odkládacím oddílu, použijte příkaz zramctl. Obrázek 2 ukazuje název zařízení, kompresní algoritmus (LZO), velikost odkládací oblasti, velikost dat na disku a její komprimovanou velikost a také počet kompresních proudů (výchozí hodnota: 1).

Strategie využití

Dále se zaměříme na strategii využití paměti. Chování využití a distribuce paměti ovlivňuje několik parametrů. To zahrnuje velikost stránek s pamětí - na 64bitových systémech je to 4M. Dále hraje roli výměna parametrů. Jak již bylo vysvětleno v první části, tento parametr řídí relativní váhu danou pro výměnu z runtime paměti, na rozdíl od vynechání stránek paměti z mezipaměti systémových stránek. Také bychom neměli zapomenout na ukládání do mezipaměti a na zarovnání stránky paměti.

Používejte programy, které vyžadují méně paměti

V neposlední řadě závisí využití paměti na samotných programech. Většina z nich je propojena s výchozí knihovnou C (standardní LibC). Jako vývojář zvažte, abyste minimalizovali svůj binární kód, a místo toho použijte alternativní a mnohem menší knihovnu C. Například existují dietlibc [1], uClibc [2] a musl lib C [3]. Web vývojáře musl lib C obsahuje rozsáhlé srovnání [4] týkající se těchto knihoven, pokud jde o nejmenší možný statický program C, srovnání funkcí a odpovídající prostředí sestavení a podporované hardwarové architektury.

Jako uživatel možná nebudete muset kompilovat své programy. Zvažte hledání menších programů a různých rámců, které vyžadují méně zdrojů. Jako příklad můžete použít desktopové prostředí XFCE namísto KDE nebo GNOME.

Závěr

Existuje poměrně málo možností, jak změnit využití paměti k lepšímu. To sahá od Swap po kompresi založenou na zRAM a také nastavení ramdisku nebo výběr jiného rámce.

Odkazy a reference

Řada pro správu paměti Linux

Poděkování

Autor by chtěl poděkovat Axelovi Beckertovi a Geroldovi Rupprechtovi za podporu při přípravě tohoto článku.

Hry Zdarma a open source herní motory pro vývoj linuxových her
Zdarma a open source herní motory pro vývoj linuxových her
Tento článek pokryje seznam bezplatných a otevřených herních enginů, které lze použít pro vývoj 2D a 3D her v systému Linux. Existuje mnoho takových h...
Hry Výukový program Shadow of the Tomb Raider pro Linux
Výukový program Shadow of the Tomb Raider pro Linux
Shadow of the Tomb Raider je dvanáctý přírůstek do série Tomb Raider - série akčních adventur vytvořená Eidosem Montrealem. Tato hra byla docela dobře...
Hry Jak zvýšit FPS v Linuxu?
Jak zvýšit FPS v Linuxu?
FPS znamená Snímků za sekundu. Úkolem FPS je měřit snímkovou frekvenci při přehrávání videa nebo herních výkonech. Jednoduše řečeno, počet nepřerušova...