Swap

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ěť.

Poznámka: neexistuje žádný rozdíl mezi použitím odkládacího oddílu a souvislého odkládacího souboru.

check swap stav použití:

$ swapon --show

Nebo ukázat fyzické paměti, stejně jako swap usage:

$ free -h

Swap partition

Tango-nepřesné.pngfaktická přesnost tohoto článku nebo oddílu je sporná.Tango-nepřesné. > png

důvod: 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
Varování: všechna data na zadaném oddílu budou ztracena.

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.

Poznámka:

  • 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).
varování: Povolení odhazovat na RAID nastavení pomocí mdadm způsobí uzamčení systému při startu a během běhu, pokud používáte swapon.

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ř.

varování: Btrfs podporuje odkládací soubor s omezeními od verze linuxového jádra 5.0. Viz Btrfs # Swap Soubor pro více informací.

Ručně

Swap vytvoření souboru

Poznámka: Pokud používáte Btrfs, nejprve postupujte podle postupu popsaného v Btrfs#Odkládací soubor pro inicializaci odkládací soubor.

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

Poznámka: Pomocí dd přidělit odkládací soubor je nejvíce přenosné řešení, viz swapon(8) § Soubory s otvory pro podrobnosti.

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í.

Poznámka:

  • 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

Poznámka: Autor nyní doporučuje používat zram-generátor místo toho, vzhledem k nízké commit frekvenci a zram pokrývající potřeby většiny uživatelů.

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.

Poznámka:

  • 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 nastavit swapfc_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.

Poznámka: Protože /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.

Related Posts

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *