Virtuální paměť je jednou z věcí, které jsou základem moderních operačních systémů, ale obvykle o ní nepřemýšlíte, pokud nemáte problém. Linuxové distribuce vás požadují, abyste během instalace nastavili virtuální paměťový prostor (odkládací oddíly), ale většina začátečníků si neuvědomuje, jak užitečné to je.

Zde je vše, co potřebujete vědět o virtuální paměti v Linuxu.

Co je virtuální paměť?

Virtuální paměť je způsob reprezentace vaší paměti, která je abstrahována od fyzické paměti na vašem počítači. Využívá vaši RAM i úložný prostor, ať už na tradičním pevném disku nebo SSD.

V Linuxu se to děje na úrovni jádra a hardwaru. CPU má kus hardwaru nazývaný jednotka správy paměti (MMU), která převádí adresy fyzické paměti na adresy virtuální. Tyto adresy jsou nezávislé na tom, kde na počítači fyzicky sídlí. Tyto adresní prostory jsou známé jako „stránky“ a mohou být v paměti RAM nebo na vašem pevném disku nebo SSD. OS vidí tyto adresy jako jeden velký fond paměti, známý jako „adresový prostor“.

instagram viewer

Virtuální paměť využívá skutečnosti, že ne všechna paměť, která se teoreticky používá, je využívána neustále. Programy v paměti jsou rozděleny na stránky a části, které jádro považuje za nepotřebné, jsou „vyměněny“ nebo přesunuty na pevný disk. Když jsou potřeba, lze je „zaměnit“ nebo vrátit zpět do paměti RAM.

Prostor používaný pro virtuální paměť na jednotce se nazývá „záložní úložiště“ nebo „odkládací prostor“. Ve světě Windows ano obvykle implementován jako soubor, známý jako "odkládací soubor." V Linuxu je to také možné, ale je to mnohem běžnější na použijte vyhrazený diskový oddíl.

Odkládací soubory na Linuxu jsou obvykle vyhrazeny pro minimální nebo vestavěné systémy a je běžné, že tyto systémy běží zcela bez virtuální paměti, protože vestavěné operační systémy musí být malé.

Výsledkem virtuální paměti je, že je možné spouštět velké programy s využitím více paměti, než je fyzická RAM v váš stroj, podobně jako vám kreditní karta umožňuje provádět velké nákupy za více peněz, než máte ve své bance účet. Virtuální paměť je stejně jako kreditní karta užitečná, když ji potřebujete, ale nechcete její používání přehnaně rozšiřovat.

Virtuální paměť také umožňuje vývojářům vytvářet aplikace, aniž by museli vědět, jak je uspořádána paměť počítače.

Historicky hlavní nevýhodou virtuální paměti bylo, že pevné disky byly pomalejší než RAM. Pokud počítač nemá dostatek paměti RAM, systém může donekonečna vyměňovat stránky dovnitř a ven, což je proces známý jako „thrashing“. Tohle je menší problém na moderních počítačích s více RAM a rychlejšími SSD, které nahrazují mechanické pevné disky, ale stále je třeba si toho být vědomi z.

Linuxové odkládací oddíly

Jak již bylo zmíněno, obvyklou metodou pro nastavení virtuální paměti v Linuxu je použití vyhrazeného diskového oddílu. Instalační program prozkoumá váš hardware a navrhne schéma rozdělení, které zahrnuje odkládací oddíl.

Po instalaci můžete také přidat odkládací oddíly. Pokud chcete přidat nový oddíl na existující disk, budete muset použijte nedestruktivní rozdělovací nástroj jako GParted. Ujistěte se, že jste jako souborový systém pro váš oddíl vybrali "Linux swap".

Před přerozdělením disku zálohujte důležitá data.

Po vytvoření oddílu použijte příkaz mkswap k formátování oddílu.

sudo mkswap /dev/sdX

Nyní budete muset upravit svůj /etc/fstab jako root pro přidání odkládacího oddílu. Tento řádek, přidaný do souboru, nastaví odkládací oddíl, který bude připojen při spouštění:

/dev/sdX none swap výchozí 0 0

Nyní použijte swapon příkaz pro aktivaci vašeho nového odkládacího prostoru, kde sdX je název vašeho odkládacího oddílu:

sudo swapon /dev/sdX

Použití Swap Files v Linuxu

Je to snadné nastavit odkládací soubor v Linuxu pomocí příkazového řádku. Možná to budete chtít udělat, pokud se nechcete obtěžovat přerozdělováním disku nebo úpravami /etc/fstab. Jednou z metod je použití Fallokate:

Chcete-li například vytvořit 2GB odkládací soubor:

sudo fallocate -l 2G /cesta/k/odkládacímu souboru

Alternativně můžete k vytvoření odkládacího souboru použít příkaz dd.

sudo dd -li=/dev/nula z=/path/to/swapfile bs=1024 počet =2048

Ujistěte se, že používáte příkaz dd správně, protože nesprávné zadání vstupního a výstupního souboru může způsobit ztrátu dat. Z tohoto důvodu je preferovanou metodou fallocate.

The /dev/zero zařízení je speciální zařízení, které vydává "0." Tento příkaz dd vytvoří prázdný dvougigabajtový blokový soubor pomocí 1024 kilobajtových bloků vhodných pro použití jako odkládací prostor.

Poté můžete použít mkswap a swapon příkazy s odkládacím souborem stejně jako s odkládacím oddílem:

sudo mkswap /cesta/k/odkládacímu souboru
sudo swapon /cesta/k/swapfile

Možná se ptáte, kdy byste měli použít odkládací soubor nebo vyhrazený oddíl pro odkládací prostor. Volba je snadná: ve většině případů byste měli použít oddíl. Toto je nejlepší volba pro linuxový desktop nebo server. Schéma oddílů navržené instalačním programem je obvykle adekvátní na jednouživatelském linuxovém desktopu.

Možná budete chtít použít odkládací soubor, pokud používáte Linux na virtuálním počítači, na malém vestavěném systému nebo prostě nechcete přerozdělovat svůj stávající systém Linux.

Kolik místa na výměnu?

Po mnoho let je standardní radou, jak velký odkládací prostor je potřeba, dvojnásobek fyzické paměti RAM. S velkými disky a množstvím paměti, se kterými přicházejí i ty nejlevnější počítače, může toto pravidlo přicházet v úvahu.

Pokud na mnoha systémech zaškrtnete top nebo htop, můžete si dokonce všimnout, že váš odkládací prostor není vůbec využíván, pokud svůj systém nastavíte tímto způsobem.

Přesto je dvojnásobná fyzická paměť dobrým výchozím bodem a pojistkou, pokud na paměť kladete větší nároky. V případě potřeby můžete provést změny ve vašem systému. Pokud váš systém využívá veškerou vaši RAM, počítač může při používání virtuální paměti narazit na problémy s výkonem.

Počítač se může neustále přepínat dovnitř a ven, což je proces známý jako mlácení, takže se zdá, že nereaguje. Pokud stále máte mechanický pevný disk, můžete často slyšet, že k němu neustále přistupuje.

To je v dnešní době mnohem menší problém, protože množství paměti RAM i na nejlevnějších počítačích je více než dostatečné a rychlost SSD je mnohem rychlejší než u starých pevných disků. Stále je to něco, čeho byste si měli být vědomi.

Nejjednodušší způsob, jak to vyřešit, je přidat do počítače více paměti RAM. Pokud to není možné, můžete zkusit upravit "swappiness" linuxového jádra.

Číslo swappiness určuje, jak moc se jádro ponoří do virtuální paměti. Pohybuje se od 0 do 100. Nastavení na 0 znamená, že Linux nebude swapovat vůbec, zatímco při 100 bude swapovat při každé příležitosti. Výchozí na většině systémů je 60.

Chcete-li dočasně změnit swappiness, použijte příkaz sysctl:

sudo sysctl vm.swappiness=20

"20" v tomto příkazu bude číslo výměny, dokud nerestartujete. Chcete-li jej trvale změnit, upravte soubor /etc/sysctl.conf soubor jako root a umístěte řádek "vm.swappiness=[číslo swappiness]", kde "[číslo swappiness]" je požadované číslo výměny. Toto bude prodleva, dokud nebudete moci nainstalovat více paměti RAM.

Virtuální paměť udržuje váš systém Linux v plynulém chodu

Virtuální paměť je součástí moderních operačních systémů, včetně Linuxu, která zajišťuje hladký chod vašeho počítače. Můžete použít odkládací soubor, ale obvyklou metodou je vyhrazený oddíl. Nemusíte o tom tolik přemýšlet, ale Linuxové odkládací oddíly a odkládací soubory se snadno nastavují a řeší problémy.

Mnoho z těchto rad platí i pro jiné systémy, včetně Windows, i když se metody nastavení virtuální paměti liší.