Jak vytvořit odkládací soubor v Linuxu

Přidejte odkládací prostor do počítače s Linuxem nebo zvyšte odkládací prostor, který je již přítomen, aniž byste si museli dělat starosti s oddíly. Ukážeme vám snadný způsob, jak přizpůsobit svůj swap prostor.

Zaměnit soubory vs. Swap oddíly

Existuje několik scénářů, kdy můžete chtít zvětšit stávající nebo přidat nový odkládací prostor do svého počítače se systémem Linux.

Možná váš odkládací prostor často běží na maximum nebo blízko maxima.
Je snadné kliknout na špatnou možnost během procesu instalace a neúmyslně odmítnout přidání swapu do vašeho systému.
Možná jste se dříve rozhodli, že toho máte tolik paměť s náhodným přístupem (RAM) nepotřebovali jste žádný swap a změnili jste názor.
Někdy zdědíte správu systému, který nemá swap, z důvodů, které nikdy nezjistíte.

Jednoduchým řešením toho všeho je přidat a odložte soubor do počítače. Toto je speciální soubor, předem přidělený a vyhrazený pro použití jako odkládací prostor. Odkládací soubor bude fungovat v tandemu s jakýmkoli existujícím swapem, který máte, ať už se jedná o odkládací soubor nebo odkládací oddíl.

Svého času došlo ke snížení výkonu při používání odkládacího souboru ve srovnání s odkládacím oddílem. To již neplatí se zlepšením výkonu mechanických (otáčejících se) pevných disků a vyšší efektivitou ve funkcích swap v operačním systému Linux. Ve skutečnosti některé distribuce Linuxu nyní ve výchozím nastavení vytvářejí odkládací soubory spíše než odkládací oddíly.

Swap se nepoužívá pouze jako prostředek k uvolnění paměti RAM, když vám dochází paměť. Je to důležitá součást dobře fungujícího systému. Bez jakéhokoli swapu je pro jádro velmi obtížné dosáhnout rozumné správy paměti. Podívejme se na snadný způsob, jak přidat nějaký odkládací prostor.

Než se ponoříme: Btrfs a SSD

Jsou dva body, které bychom rádi rychle probrali.

The Souborový systém Btrfs má určitá upozornění ohledně odkládacích souborů. Svého času došlo ke konfliktu mezi copy-on-write charakter Btrfs, který chtěl fungovat jedním způsobem a swapovat soubory, které potřebovaly fungovat jiným způsobem. Některé funkce, na kterých závisí odkládací soubory, nebyly implementovány a některé předpoklady o číslování bloků ve swapovacích souborech neplatily s Btrfs. Odkládací soubory tedy nebyly podporovány.

Od jádra 5.0 jste může mít odkládací soubory v souborových systémech Btrfs pokud jsou nastaveny s následujícími požadavky:

Žádné soubory copy-on-write (NOCOW).
Nejsou komprimované.
Nesahají na různé pevné disky.

Většina čtenářů bude používat výchozí souborový systém ext4, takže se jich to nebude týkat.

Když byly disky SSD (Solid-State Drives) poprvé k dispozici, existovaly obavy z jejich použití v situacích, kdy byly časté zápisy do systému souborů. Lidé byli varováni před umístěním odkládacího prostoru na disky SSD a dokonce před tím, aby se vyhnuli přihlašování systému na disky SSD.

  Jak pracovat rychleji ve Photoshopu

To je v dnešní době mnohem menší problém a mnoho SSD, které jsou v prodeji, má životnost, která přežije většinu počítačů. Odkládací soubor na SSD bude mít mnohem lepší výkon než odkládací oddíl na mechanickém pevném disku.

Kontrola existujícího odkládacího prostoru

Podívejte se, než skočíte. Pojďme zkontrolovat, jaký odkládací prostor je na vašem počítači k dispozici. Můžete to udělat dvěma způsoby a my použijeme oba. Příkaz free zobrazí použitou a volnou paměť. Volba -h (čitelná pro člověka) způsobí volné použití smysluplných jednotek, když zobrazí hodnoty paměti.

free -h

Výstup z free ukazuje, že na tomto počítači není nakonfigurován žádný odkládací prostor.

O swapu se nikdy nemluví, aniž by se objevila RAM a volná RAM. Za zmínku tedy stojí, že volná RAM je udávána jako 237 MB. Nepleťte si to s celkovou dostupnou pamětí RAM. Tuto hodnotu poskytuje údaj „dostupných“, což je 881 MB.

Linux používá volnou RAM pro své vlastní účely, jako je ukládání souborů do mezipaměti a vyrovnávací paměti jádra. Množství paměti RAM vyhrazené k tomu je údaj „buff/cache“, což je 871 MB. Ale tato paměť je stále považována – a počítána jako – „dostupná“. Obsah „buf/cache“ RAM může být okamžitě zahozen a použit jakoukoli aplikací, která potřebuje nějakou paměť.

Dalším způsobem, jak zkontrolovat, zda je k dispozici odkládací prostor, je použít příkaz swapon. Možnost –show nečiní žádné změny ve swapu na vašem počítači. Poskytuje pouze statistiky.

swapon --show

Pokud tento příkaz nemá žádný výstup, není nakonfigurován žádný swap.

Pokud tyto příkazy odhalily, že nějaký odkládací prostor je již nakonfigurován, velikost stávajícího odkládacího prostoru by měla být zohledněna při rozhodování o velikosti odkládacího souboru, který se chystáte vytvořit.

Kolik prostoru pro výměnu potřebuji?

Tradiční odpověď byla „dvojnásobné množství paměti RAM, kterou máte“. Ale to bylo vytvořeno, když počítače měly velmi omezenou RAM. Protože RAM zlevnila a programy a hry byly náročnější na paměť, přizpůsobily se tomu i specifikace PC. Domácí PC s 32 GB RAM nejsou v dnešní době nic neobvyklého. A nebudete přidělovat 64 GB místa na pevném disku pro výměnu, pokud máte 32 GB RAM. To je zjevně přehnané.

Množství swapu, které potřebujete, je jako zápalné téma, srovnatelné s „který je nejlepší editor“. Jedna z nejrozumnějších diskuzí, které jsme na toto téma viděli, je v Časté dotazy týkající se výměny Ubuntu. Je to krátký a rozumný přístup (ačkoli jako mnoho lidí špatně chápe, jak funguje swappiness na Linuxu). K dispozici je praktická tabulka, která ukazuje doporučené množství odkládacího prostoru pro velikost paměti RAM, kterou má váš systém, a zda počítač přepnete do režimu spánku nebo ne.

  Jak si zločinci objednávají telefony na vaše jméno (a jak je zastavit)

A dobrá zpráva je, že nezáleží na tom, jakou hodnotu zvolíte. Vždy můžeme odstranit odkládací soubor a nahradit jej větším nebo dokonce menším. Nebo můžete přidat další odkládací soubor.

Výběr velikost odkládacího souboru z tabulkya chvíli jej spusťte. Sledujte, jak váš systém využívá odkládací prostor. Pokud je vyžadováno jemné doladění, lze změny snadno provést. S odkládacími soubory je to práce na dvě minuty. Porovnejte to s úpravou oddílů na živém počítači se systémem Linux.

Vytvoření odkládacího souboru

Neměli byste používat příkaz fallocate k vytvoření odkládacího souboru. Toto je z manuálové stránky pro swapon:

The swap file implementation in the kernel expects to be able to write to
the file directly, without the assistance of the file system. 

This is a problem on files with holes or on copy-on-write files on file 
systems like Btrfs. Commands like cp(1) or truncate(1) create files with 
holes. These files will be rejected by swapon. 

Preallocated files created by fallocate(1) may be interpreted as files 
with holes too depending of the filesystem. Preallocated swap files are 
supported on XFS since Linux 4.18. 

The most portable solution to create a swap file is to use dd(1) and 
/dev/zero.

Takže ačkoli je fallocate rychlejší, použijeme dd to vytvořte odkládací soubor. Stroj použitý k výzkumu tohoto článku má dva GB RAM. Vytvoříme odkládací soubor o velikosti jednoho GB.

Možnosti jsou:

if: Vstupní soubor. V tomto příkladu používáme /dev/zero, který poskytne proud nula bajtů.
of: Výstupní soubor. V kořenovém adresáři vytvoříme soubor s názvem swapfile.
bs: Velikost bloku v bajtech. To určuje, kolik bajtů se má najednou číst ze vstupního souboru a kolik bajtů zapsat do výstupního souboru.
počet: Kolik bloků ke čtení a zápisu. Vynásobte toto číslo hodnotou bs, abyste získali velikost souboru.

sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576

Některé statistiky jsou poskytovány při vytváření souboru.

Můžeme vidět počet bloků (záznamů), které byly zapsány do souboru, velikost souboru, čas potřebný k vytvoření souboru a efektivní rychlost přenosu dat.

Pomocí příkazu ls zobrazíte soubor v kořenovém adresáři:

ls /

Příprava odkládacího souboru

Potřebujeme připravte odkládací soubor pomocí příkazu mkswap, než jej lze použít. Pro mkswap nemusíme zadávat žádné parametry kromě cesty a názvu souboru:

sudo mkswap /swapfile

Soubor je připraven k použití jako odkládací soubor. Všimněte si varování o oprávněních k souboru. Budeme je muset změnit, aby byl uživatel root jediným, kdo může číst a zapisovat do odkládacího souboru.

Pomocí odkládacího souboru

Výchozí oprávnění jsou příliš liberální, musíme je omezit, aby odkládací soubor mohl používat pouze root. Ke změně oprávnění souboru použijte chmod:

sudo chmod 600 /swapfile

To odebere veškerá oprávnění členům skupiny souborů a ostatním, ale umožní vlastníkovi souboru, rootovi, číst a zapisovat do souboru.

Musíme použít příkaz swapon, abychom dali Linuxu vědět, že je k dispozici nový odkládací soubor, který lze použít. Potřebujeme pouze zadat cestu a název souboru:

sudo swapon /swapfile

Odkládací soubor je nyní aktivní.

  Najděte levné notebooky speciálně pro hry, programování nebo běžné použití

Přidání odkládacího souboru do fstab

Chcete-li se ujistit, že váš odkládací soubor je po restartu dostupný, přidejte jej do souboru /etc/fstab. Můžete použít libovolný textový editor, který preferujete, ale proces ukážeme pomocí grafického textového editoru Gedit.

sudo gedit /etc/fstab

Řádek, který musíme přidat na konec souboru, je:

/swapfile    none    swap    sw    0    0

Pole jsou:

Systém souborů: Cesta a název odkládacího souboru.
Bod připojení: Soubor není připojen jako souborový systém, takže položka je „žádný“.
Typ: Toto je „swap“.
Možnosti: Při bootování bude z jednoho ze spouštěcích skriptů volána swapon -a (spuštění všech zařízení označených jako swap). Tato volba říká Linuxu, aby s touto položkou zacházel jako se swapovacím prostředkem, který by měl být řízen příkazem swapon -a. Je běžné, že se zde používá „výchozí nastavení“, protože mezi některými uživateli Linuxu panuje mylný názor, že toto pole je ignorováno. Jak uvidíme, není tomu tak. Proto má smysl použít správnou možnost.
Dump: Toto lze nastavit na nulu. V tomto případě je to irelevantní.
Pass: Toto lze nastavit na nulu. V tomto případě je to irelevantní.

Uložte změny a zavřete editor.

Kontrola využití swapu

Chcete-li zjistit, zda je váš odkládací prostor využíván, použijte příkaz swapon s volbou –show:

swapon --show

Sloupce jsou:

Název: Název odkládacího oddílu nebo odkládacího souboru.
Typ: Typ odkládacího zařízení.
Velikost: Velikost swapovacího prostředku.
Used: Množství použitého odkládacího prostoru.
Prio: Priorita tohoto odkládacího prostoru.

Priorita výměny prostoru

Každému odkládacímu prostoru je přidělena priorita. Pokud žádný nezadáte, bude automaticky přidělen. Automaticky přidělené priority jsou vždy záporné. Rozsah priorit, které lze ručně přidělit, je 0 až 32767. Nejprve se použijí swapovací prostředky s vyššími prioritami.

Pokud má více než jeden odkládací prostor stejnou prioritu, jsou používány střídavě, dokud nejsou oba plné, pak systém hledá odkládací prostor s nejbližší nejnižší prioritou. Pokud máte pouze jeden odkládací prostor, pak je priorita samozřejmě irelevantní. Ale změníme prioritu odkládacího souboru, který jsme vytvořili, abychom ukázali, jak to udělat.

Chcete-li nastavit prioritu, přidejte do položky /etc/fstab volbu pri= (priorita). Upravte řádek, který jste přidali do /etc/fstab, aby vypadal takto:

/swapfile    none    swap    sw,pri=10    0    0

To znamená, že do pole voleb přidejte pri=10, oddělené od „sw“ čárkou. Mezi „sw“, čárkou a „pri=10“ nenechávejte žádné mezery. Restartujte počítač a použijte příkaz swapon –show:

swapon -- show

Priorita tohoto odkládacího prostoru byla zvýšena na 10. Což je pozitivní důkaz, že pole voleb v položce /etc/fstab není ignorováno.

Snadná výměna prostoru

Po proříznutí výkladu a vysvětlení můžeme vytvořit nový odkládací soubor tak snadno a rychle, jako je tento:

sudo dd if=/dev/zero /of=/swapfile2 bs=1024 count=104857
sudo mkswap /swapfile2
sudo chmod 600 /swapfile2
sudo swapon /swapfile2

A zkontrolujeme, že to fungovalo:

swapon --show

Chcete-li toto trvalé odstranění provést, uložte jej do svého souboru /etc/fstab.

Výložník. Hotovo.