Linuxové jádro

Linuxový výměnný prostor pro správu paměti jádra

Linuxový výměnný prostor pro správu paměti jádra

První část. Výměnný prostor

Aby počítač správně fungoval, závisí na dostatečném množství paměti. Jednoduše řečeno, nikdy toho nemůže být dost. Čím více fyzické paměti je nainstalováno, tím je to nákladnější. Výsledkem je většinou chytrý kompromis mezi náklady a rychlostí přístupu k paměťovým buňkám.

K dosažení tohoto kompromisu systémy UNIX / Linux kombinují dva typy paměti - fyzickou paměť (RAM) a odkládací prostor. Celkově se tomu říká virtuální paměť výpočetního systému. Fyzická paměť je poměrně drahá, ale rychlá a přístupná během nanosekund. Naproti tomu odkládací paměť je poměrně levná, ale pomalá a přístupná během milisekund.

Existuje několik důvodů, proč je výměnná paměť užitečná. Za prvé, někdy jednotlivé procesy potřebují více paměti, než fyzicky systém vlastní, a mohou poskytnout více procesům, které to vyžadují. Výsledkem je, že tam již nelze ukládat všechna data uložená ve fyzické paměti. Nyní vstupuje do hry odkládací prostor a do paměťového prostoru se přenese výběr stránek paměti, aby se uvolnila fyzická paměť.

Zadruhé, v paměti nejsou potřebná všechna data současně. Proto jsou stránky s méně používanou pamětí zaparkovány na odkládacím prostoru, aby bylo k dispozici co nejvíce volné fyzické paměti. Tato metoda se jmenuje Nejméně nedávno použitý algoritmus nahrazení stránky (LRU) [1].

Druhy swapů

Výměnný prostor existuje ve dvou variantách. Verze 1 je samostatný diskový oddíl, který je takzvaným odkládacím oddílem. Na tomto oddílu nejsou uloženy žádné soubory, ale informace o paměti (výpis). Jednoduše, verze 2 je soubor na disku, který se nachází v systému souborů na vašem pevném disku. Verze 1 je velmi běžná v systémech UNIX / Linux, BSD a OS X, zatímco verze 2 existuje v systémech se systémem Microsoft Windows. Verze 2 může být také povolena v systémech UNIX / Linux (viz níže).

Chcete-li zjistit, který odkládací prostor je aktivní ve vašem systému UNIX / Linux, spusťte v terminálu následující příkaz:

$ / sbin / swapon -s
Název souboru Typ Použitá velikost Priorita
/ dev / dm-3 oddíl 16150524 316484 -1
$

Jako alternativu můžete odeslat požadavek do systému souborů proc a spustit příkaz cat / proc / swaps

Tento systém Linux má odkládací oddíl o velikosti přibližně 15 GB, ve kterém se aktuálně používá více než 300 milionů. Sloupec Priorita ukazuje, který odkládací prostor použít jako první. Výchozí hodnota je -1. Čím vyšší je hodnota priority, tím dříve je tento swapový prostor zohledněn. Možnost -s je krátká verze -summary. Tato možnost je zastaralá a místo toho se doporučuje použít možnost -show následujícím způsobem:

$ / sbin / swapon --show = JMÉNO, TYP, VELIKOST, POUŽITO, PRIO
VELIKOST TYPU NÁZEV POUŽITO PRIO
/ dev / dm-3 oddíl 15,4G 307,1M -1
$

Volba -show přijímá seznam hodnot, které představují záhlaví sloupců. Chcete-li dosáhnout konkrétního výstupního pořadí, vyberte požadovaná záhlaví sloupců a jejich pořadí.

Výměna velikosti

Obecně se doporučuje, aby velikost odkládacího prostoru byla dvakrát větší, než má systém fyzickou paměť. Nezapomeňte na to pro univerzální nastavení a stolní počítače. U serverů UNIX / Linux s mnohem větší fyzickou pamětí můžete zmenšit velikost odkládacího prostoru na 50% RAM. Notebooky, které mohou přezimovat, musí být o něco větší než fyzická paměť.

Instalace

U odkládacího oddílu se doporučuje myslet na odkládací prostor hned od začátku rozdělení disku na jednotlivé oddíly, nebo ponechat dostatek nevyužitého místa na disku pro pozdější použití. Během konfigurace disků, které se mají použít, se vás instalační rutina obvykle zeptá na velikost odkládacího prostoru. Jako příklad to na Debianu GNU / Linux vypadá takto:

Jak již bylo zmíněno výše, pokud máte na pevném disku prostor pro nové oddíly, můžete vytvářet a zahrnovat odkládací oddíly pomocí příkazů jako fdisk a swapon.

Alternativně lze odkládací prostor povolit také později jako odkládací soubor. Linux tento způsob podporuje, abyste jej mohli vytvářet, připravovat a připojovat podobným způsobem jako odkládací oddíl. Výhodou tohoto způsobu je, že pro přidání dalšího odkládacího prostoru nemusíte disk rozdělit na další oddíly.

Jako příklad vytvoříme soubor s názvem / swapfile o velikosti 512M a povolíme to jako další odkládací prostor. Nejprve pomocí příkazu dd vytvoříme prázdný soubor. Zadruhé, mkswap používá tento soubor k transformaci do swapového stylu. Můžete si všimnout, že s obsahem souboru je zacházeno jako s oddílem a je přiřazen odpovídající UUID. Za třetí, povolíme to pomocí swaponu. Nakonec příkaz swapon -show zobrazí dvě položky swapu - oddíl a nově vytvořený soubor.

# dd if = / dev / zero of = / swapfile bs = 1024 count = 524288
524288 + 0 datových sad
524288 + 0 datových sad
536870912 bajtů (537 MB) zkopírováno, 0,887744 s, 605 MB / s
# mkswap / swapfile
Nastavení swapspace verze 1, velikost = 524284 KiB
žádný štítek, UUID = e47ab7fe-5efc-4175-b287-d0e83bc10f2e
# swapon / swapfile
# swapon --show = JMÉNO, TYP, VELIKOST, POUŽITO, PRIO
VELIKOST TYPU NÁZEV POUŽITO PRIO
/ dev / dm-3 oddíl 15,4G 288,9M -1
/ soubor swapfile 512M 0B -2
#

Chcete-li použít tento odkládací soubor při spuštění, přidejte jako správce následující řádek do souboru / etc / fstab:

/ swapfile žádný swap sw 0 0

Deaktivace odkládacího prostoru

Nejméně, ale ne naposledy, existuje opět jeden příkaz k deaktivaci odkládacího souboru. Příkaz se nazývá vyměnit. Vyžaduje jediný parametr, který označuje deaktivaci odkládacího zařízení. Tento příkaz zakáže dříve aktivovaný odkládací soubor:

# swapoff / swapfile

Taky, vyměnit může pracovat s UUID souborového systému. Dělat vyměnit jednat tímto způsobem použijte tuto možnost -U následuje UUID příslušného systému souborů. V případě, že je potřeba deaktivovat všechny odkládací prostory najednou, je tato možnost -A (dlouhá volba - vše) je docela užitečné. Úplný příkaz je swapoff -a.

Vyladění swapového ekosystému

Počínaje verzemi linuxového jádra 2.6 byla zavedena nová hodnota. To je uloženo v proměnné / proc / sys / vm / swappinessa řídí relativní váhu, která je dána výměně paměti za běhu, na rozdíl od vynechání stránek paměti z mezipaměti systémových stránek [2]. Výchozí hodnota je 60 (procento volné paměti před aktivací swapu). Čím nižší je hodnota, tím méně se používá swapování a tím více stránek paměti se uchovává ve fyzické paměti.

Chcete-li dočasně nastavit hodnotu, nastavte hodnotu v systému souborů / proc následujícím způsobem:

# echo 10> / proc / sys / vm / swappiness

Jako alternativu můžete použít sysctl příkaz takto:

# sysctl -w vm.swappiness = 10

Chcete-li trvale nastavit hodnotu, přidejte do souboru následující řádek / etc / sysctl.conf:

vm.swappiness = 10

Je swap stále aktuální?

Můžete se zeptat, proč se tímto tématem zabýváme. Moderní počítače mají dostatek fyzické paměti - tak proč se o to musíme starat? Existuje několik důvodů, proč je tato technologie cennější než myšlenka.

Pamatujte, že se strojem chvíli zůstanete, ale můžete čas od času aktualizovat software, který na něm používáte. V současné době se hardware i software k sobě hodí. V budoucnu se to může změnit a budete potřebovat více paměti, než máte nyní. Pokud upgradujete nebo kupujete nový hardware, oddíl Swap vám může ušetřit trochu peněz.

Možná jste slyšeli o funkci zvané pozastavení na disk nebo režim hibernace [3]. Váš stroj jde spát. Než to udělá, musí někde uložit svůj aktuální stav. Nyní vstupuje do hry odkládací prostor a slouží jako kontejner pro uchování těchto dat. Jakmile se stroj při příštím probuzení načte všechna data z prostoru Zaměnit, načíst do paměti a můžete pokračovat v práci tam, kde jste se předtím zastavili.

Pokud má systém pouze jedno trvalé úložné zařízení, bude muset číst a zapisovat vaše soubory při výměně na stejném zařízení. Obrovské zlepšení uvidíte, pokud máte druhé zařízení a můžete oddělit odkládací zařízení od konfliktních přístupů k souborům.

Odkládací soubor musí předávat data prostřednictvím systému souborů. Přidá vrstvu nepřímosti, aby se zdálo, že pro jádro existuje souvislý logický adresní prostor, se kterým může pracovat. To přidává další cykly režie paměti a CPU. Nejlepších výsledků dosáhnete použitím surového odkládacího oddílu.

Závěr

I dnes jsou znalosti týkající se Swapu zásadní. Toto téma je součástí znalostí, které jsou požadovány k absolvování Linux Professional Institute Certificate Level 1 (LPIC 1). Většina zkoušek obsahuje jednu nebo dvě otázky týkající se tohoto tématu.

Výměnný prostor pomáhá vašemu systému Linux (jádru) rychle uspořádat paměť, pokud ji potřebujete. Chcete-li být s vámi otevřeni, není místo pro výměnu nezbytně nutné, pokud má váš systém spoustu RAM. V případě nouze pomůže vašemu systému přežít. Proto bych nikdy neopustil cestu tradičního nastavení bez swapového prostoru.

Kombinace Swap a SSD je diskutována kontroverzním způsobem, protože počet zápisů na disky na SSD je poměrně omezený. Swap i dočasné soubory jsou vytvořeny pro zápis velkého množství dat. Na druhou stranu mají moderní SSD více než dost místa navíc (7%), aby zvládly selhání sektoru. Pro jistotu: pokud je to možné, mějte na běžném pevném disku samostatný swap - nepoužívejte ramdisk ani SSD, alespoň pro swap [4]. Váš systém Linux vám za toto rozhodnutí poděkuje.

Abyste se vyhnuli vložení odkládacího prostoru na disk SSD, můžete místo toho použít ZRAM [5,6]. Toto je Virtual Swap komprimovaný v RAM, také pojmenovaný zSwap. Tato technologie umožňuje komprimované blokové zařízení v paměti. Jakmile již není žádná paměť, stránky paměti se přenesou do tohoto blokovacího zařízení. Výsledkem je menší využití swapu a také prodloužení životnosti vašeho pevného disku.

Odkazy a reference

Řada pro správu paměti Linux

Poděkování

Autor by rád poděkoval Mandy Neumeyer a Geroldovi Rupprechtovi za podporu při přípravě tohoto článku.

Jak používat Xdotool ke stimulaci kliknutí myší a klávesových zkratek v systému Linux
Xdotool je bezplatný a otevřený nástroj příkazového řádku pro simulaci kliknutí myší a stisknutí kláves. Tento článek se bude věnovat krátkému průvodc...
Top 5 ergonomických produktů pro počítačové myši pro Linux
Způsobuje dlouhodobé používání počítače bolest zápěstí nebo prstů? Trpíte ztuhlými klouby a neustále si musíte třást ruce? Cítíte pálivou bolest pokaž...
Jak změnit nastavení myši a touchpadu pomocí Xinput v Linuxu
Většina linuxových distribucí je ve výchozím nastavení dodávána s knihovnou „libinput“ pro zpracování vstupních událostí v systému. Může zpracovávat v...