Tato stránka obsahuje úvod do odkládacího prostoru a stránkování na GNU / Linuxu. Zahrnuje vytváření a aktivaci odkládacích oddílů a odkládacích souborů.
ze všeho o odkládacím prostoru Linuxu:
Linux rozděluje svou fyzickou RAM (paměť s náhodným přístupem) na kousky paměti zvané stránky. Odkládání je proces, kdy je stránka paměti je zkopírován do přednastavených místa na pevném disku, se nazývá odkládací prostor, uvolnit se, že stránka paměti. Kombinované velikosti fyzické paměti a odkládacího prostoru je množství dostupné virtuální paměti.
podpora swap je poskytována linuxovým jádrem a utilitami user-space z balíčku util-linux.
odkládací prostor
odkládací prostor může mít podobu diskového oddílu nebo souboru. Uživatelé mohou vytvořit odkládací prostor během instalace nebo kdykoli později podle potřeby. Odkládací prostor lze použít pro dva účely, rozšířit virtuální paměť nad nainstalovanou fyzickou paměť (RAM) a také pro podporu pozastavení na disk.
Pokud je výhodné rozšířit virtuální paměť pomocí swap, závisí na množství nainstalované fyzické paměti. Pokud je množství fyzické paměti menší než množství paměti potřebné ke spuštění všech požadovaných programů, může být výhodné povolit swap. Tím se zabrání z paměti podmínek, kde se linux kernel Oom killer mechanismus automaticky pokusí uvolnit paměť tím, že zabije procesy. Chcete-li zvýšit množství virtuální paměti na požadované množství, přidejte potřebný rozdíl (nebo více) jako odkládací prostor.
největší nevýhodou povolení swap je jeho nižší výkon, viz část # Performance . Proto, povolení výměny je věcí osobních preferencí: někteří dávají přednost programům, které mají být zabity před povolením swap a jiní dávají přednost povolení swap a pomalejšímu systému, když je vyčerpána fyzická paměť.
check swap stav použití:
$ swapon --show
Nebo ukázat fyzické paměti, stejně jako swap usage:
$ free -h
Swap partition
faktická přesnost tohoto článku nebo oddílu je sporná.
82
je typ odkládacího oddílu na MBR, na MBR není autodetekce odkládacího oddílu. Zdá se, že příkazy / TRIM na odkládacích oddílech jsou jádrem vydávány automaticky, pokud jsou podporovány, viz návody k nasazení Fedory. (Diskutovat v Talk:Swap#objasnit swap discovery)swapový oddíl může být vytvořen s většinou nástrojů pro dělení GNU / Linux. Odkládací oddíly jsou obvykle označeny jako typ 82
. I když je možné použít libovolný typ oddílu jako swap, je doporučeno použít typ 82
ve většině případů, protože systemd bude automaticky detekovat a připojit jej (viz níže).
Chcete-li nastavit oddíl jako oblast Linux swap, použije se příkaz mkswap(8). Například:
# mkswap /dev/sdxy
povolit zařízení pro stránkování:
# swapon /dev/sdxy
povolit tento swapovací oddíl na boty, přidat položku do /etc/fstab
:
UUID=device_UUID none swap defaults 0 0
kde device_UUID
je UUID swapového prostoru.
syntaxi souboru viz fstab.
- položka fstab je volitelná, pokud je odkládací oddíl umístěn na zařízení používajícím GPT. Viz další pododdíl.
- Pokud používáte SSD s podporou TRIM, zvažte použití
discard
v odkládacím řádku ve fstab. Pokud aktivace swapu ručně pomocí swapon, pomocí-d
--discard
parametr dosahuje stejné. Podrobnosti viz swapon (8).
aktivace systemd
systemd aktivuje odkládací oddíly na základě dvou různých mechanismů. Oba jsou spustitelné soubory v /usr/lib/systemd/system-generators
. Generátory jsou spuštěny při startu a vytvářejí nativní jednotky systemd pro připojení. První, systemd-fstab-generator
, čte fstab pro generování jednotek, včetně jednotky pro swap. Druhý, systemd-gpt-auto-generator
kontroluje kořenový disk pro generování jednotek. Pracuje pouze na discích GPT a může identifikovat odkládací oddíly podle typu GUID, viz systemd # GPT partition automounting pro více informací.
Zakázání swapu
Chcete-li deaktivovat konkrétní odkládací prostor:
# swapoff /dev/sdxy
Případně můžete použít -a
spínač, tím deaktivujete všechny odkládací prostor.
protože swap je spravován systemd, bude znovu aktivován při příštím spuštění systému. Chcete-li trvale zakázat automatickou aktivaci detekovaného odkládacího prostoru, spusťte systemctl --type swap
a vyhledejte odpovědného .vyměňte jednotku a zamaskujte ji.
odkládací soubor
jako alternativa k vytvoření celého oddílu nabízí odkládací soubor možnost měnit jeho velikost za běhu a je snadněji zcela odstraněn. To může být zvláště žádoucí, pokud je místo na disku Prémiové (např.
Ručně
Swap vytvoření souboru
použijte dd k vytvoření odkládacího souboru velikosti podle vašeho výběru. Například, vytváří 512 MiB odkládací soubor:
# dd if=/dev/zero of=/swapfile bs=1M count=512 status=progress
Nastavte správná oprávnění (čitelný pro odkládací soubor je obrovský místní zranitelnosti):
# chmod 600 /swapfile
Po vytvoření správně velikosti souboru, formátu to vyměnit:
# mkswap /swapfile
Aktivovat odkládací soubor:
# swapon /swapfile
a Konečně, upravte konfiguraci fstab přidat záznam pro odkládací soubor:
/etc/fstab
/swapfile none swap defaults 0 0
Pro další informace, viz fstab#Využití.
- odkládací soubor musí být určen jeho umístěním v systému souborů, nikoli jeho UUID nebo štítkem.
- Při použití Btrfs, nezapomeňte přidat vytvořené subvolume do seznamu stejně, a odstranit
discard,autodefrag
a možnosti komprese.
Odstranit odkládací soubor
odstranit odkládací soubor, musí být vypnutý a pak mohou být odstraněny:
# swapoff /swapfile# rm -f /swapfile
Konečně odstranit příslušný záznam z /etc/fstab
.
automatizovaný
zram-generátor
cílem tohoto nástroje je vytvoření zařízení zram. Je napsán v Rustu a sídlí v GitHubu systemd. Může být instalován s balíčkem zram-generatorAUR.Konfigurace je přímočará a vysvětlena v README.
systemd-swap
systemd-swap je skript pro vytvoření hybridního odkládacího prostoru ze swapů zram, odkládacích souborů a odkládacích oddílů. Není spojen s projektem systemd.
nainstalujte balíček systemd-swap. Odkomentujte a nastavte swapfc_enabled=1
v sekci Swap file Chunked /etc/systemd/swap.conf
. Spusťte/povolte službu systemd-swap
.
navštivte stránku autoři GitHub pro více informací a nastavení doporučené konfigurace.
- Pokud časopise udržuje ukazuje následující varování
systemd-swap: WARN: swapFC: ENOSPC
a ne odkládací soubor je vytvořen, musíte odkomentovat a nastavitswapfc_force_preallocated=1
/etc/systemd/swap.conf
. - swapový soubor vytvořený systemd-swap nelze snadno použít pro hibernaci. Viz problém systemd-swap 85.
Swap encryption
viz dm-crypt/Swap encryption.
výkon
swapové operace jsou obvykle výrazně pomalejší než přímý přístup k datům v paměti RAM. Zakázání swapu zcela ke zlepšení výkonu může někdy vést k degradaci, protože to snižuje paměť k dispozici pro VFS cache, což způsobuje další časté a nákladné disk I/O.
Swap hodnoty mohou být upraveny tak, aby pomohl výkon:
Swappiness
swappiness sysctl parametr představuje jádro preference (či vyhýbání se) odkládací prostor. Swappiness může mít hodnotu mezi 0 a 200 (max. 100 pokud Linux < 5.8), výchozí hodnota je 60. Nízká hodnota způsobí, že jádro, aby se zabránilo swapping, vysoká hodnota způsobí, že jádro zkuste použít odkládací prostor, a hodnota 100 znamená, IO nákladů se předpokládá, že budou stejné. Je známo, že použití nízké hodnoty na dostatečné paměti zlepšuje citlivost na mnoha systémech.
Chcete-li zkontrolovat aktuální swappiness hodnota:
$ sysctl vm.swappiness
Případně, soubory /sys/fs/cgroup/memory/memory.swappiness
nebo /proc/sys/vm/swappiness
lze číst za účelem získání surového celočíselnou hodnotu.
/proc
je mnohem méně organizovaný a je udržován pouze pro účely kompatibility, doporučujeme použít /sys
.Chcete-li dočasně nastavit hodnotu swappiness:
# sysctl -w vm.swappiness=10
Chcete-li trvale nastavit hodnotu swappiness, vytvořte sysctl.D (5) konfigurační soubor. Například:
/etc/sysctl.d / 99-výměna.conf
vm.swappiness=10
Chcete-li vyzkoušet a více o tom, proč to může fungovat, podívejte se na tento článek.
VFS cache tlak
Další sysctl parametr, který ovlivňuje swap výkon je vm.vfs_cache_pressure
, který řídí sklon jádra kultivovat paměť, která se používá pro ukládání do mezipaměti VFS cache, oproti pagecache a swap. Zvýšením této hodnoty se zvyšuje rychlost rekultivace mezipaměti VFS. Další informace naleznete v dokumentaci k jádru Linuxu.
Priorita
Pokud máte více než jeden odkládací soubor nebo odkládací oddíl, měli byste zvážit přiřazení hodnoty priority (0 až 32767) pro každou odkládací oblast. Systém bude používat swapové oblasti s vyšší prioritou před použitím swapových oblastí s nižší prioritou. Například, pokud máte rychlejší disk (/dev/sda
) a pomalejší disk (/dev/sdb
), přiřadit vyšší prioritu, aby odkládací oblast se nachází na nejrychlejší zařízení. Priority mohou být přiřazeny v fstab pomocí pri
parametry:
/dev/sda1 none swap defaults,pri=100 0 0/dev/sdb2 none swap defaults,pri=10 0 0
Nebo pomocí --priority
parametr swapon:
# swapon --priority 100 /dev/sda1
pokud mají dvě nebo více oblastí stejnou prioritu a je to nejvyšší dostupná priorita, stránky jsou mezi nimi přidělovány každý s každým.
použití zswap nebo zram
zswap je funkce linuxového jádra poskytující komprimovanou vyrovnávací paměť pro vyměněné stránky. To zvyšuje výkon a snižuje IO-operace. ZRAM vytvoří virtuální komprimovaný odkládací soubor v paměti jako alternativu k swapfile na disku.
stripování
není nutné používat RAID Z důvodů výkonu swapu. Samotné jádro může stripe vyměňovat na několika zařízeních, pokud jim dáte stejnou prioritu v souboru /etc/fstab
. Viz Software-RAID HOWTO podrobnosti.