Tento tutoriál pojednává o konceptu odkládacího souboru v Linuxu, proč se používá a jeho výhodách oproti tradičnímu odkládacímu oddílu. Dozvíte se, jak vytvořit odkládací soubor nebo změnit jeho velikost.
Co je odkládací soubor v Linuxu?
Odkládací soubor umožňuje Linuxu simulovat místo na disku jako RAM. Když vašemu systému začne docházet RAM, použije odkládací prostor a odloží část obsahu RAM na místo na disku. Tím se uvolní paměť RAM, aby mohla obsluhovat důležitější procesy. Když se RAM opět uvolní, vymění data z disku zpět. Doporučuji přečíst si tento článek, kde se dozvíte více o swapu v Linuxu.
Tradičně se odkládací prostor používá jako samostatný oddíl na disku. Při instalaci Linuxu vytvoříte samostatný oddíl pouze pro odkládání. Tento trend se však v posledních letech změnil.
S odkládacím souborem již nepotřebujete samostatný oddíl. Vytvoříte soubor pod rootem a řeknete svému systému, aby jej použil jako odkládací prostor.
S vyhrazeným odkládacím oddílem je změna velikosti odkládacího prostoru noční můrou a v mnoha případech nemožným úkolem. Ale s odkládacími soubory můžete měnit jejich velikost, jak chcete.
Nedávné verze Ubuntu a některých dalších distribucí Linuxu začaly ve výchozím nastavení používat odkládací soubor. I když nevytvoříte odkládací oddíl, Ubuntu samo vytvoří odkládací soubor o velikosti přibližně 1 GB.
Podívejme se více na odkládací soubory.
Zkontrolujte odkládací prostor v Linuxu
Než začnete přidávat odkládací prostor, bylo by dobré zkontrolovat, zda již máte ve svém systému odkládací prostor k dispozici.
Můžete to zkontrolovat pomocí příkazu free v Linuxu. V mém případě má můj Dell XPS 14 GB odkládacího prostoru.
free -h
total used free shared buff/cache available
Mem: 7.5G 4.1G 267M 971M 3.1G 2.2G
Swap: 14G 0B 14G
Příkaz free vám poskytne velikost odkládacího prostoru, ale neřekne vám, zda se jedná o skutečný odkládací oddíl nebo odkládací soubor. Příkaz swapon je v tomto ohledu lepší.
swapon --show
NAME TYPE SIZE USED PRIO
/dev/nvme0n1p4 partition 14.9G 0B -2
Jak můžete vidět, mám 14,9 GB odkládacího prostoru a je to na samostatném oddílu. Pokud by se jednalo o odkládací soubor, typ by byl soubor namísto oddílu.
swapon --show
NAME TYPE SIZE USED PRIO
/swapfile file 2G 0B -2
Pokud v systému nemáte odkládací prostor, mělo by se zobrazit něco takového:
free -h
total used free shared buff/cache available
Mem: 7.5G 4.1G 267M 971M 3.1G 2.2G
Swap: 0B 0B 0B
Příkaz swapon neukáže žádný výstup.
Vytvořit odkládací soubor v systému Linux
Pokud váš systém nemá odkládací prostor nebo pokud si myslíte, že odkládací prostor není dostatečný, můžete vytvořit odkládací soubor v Linuxu. Můžete také vytvořit více odkládacích souborů.
Podívejme se, jak vytvořit odkládací soubor v Linuxu. V tomto tutoriálu používám Ubuntu 18.04, ale mělo by to fungovat i na jiných distribucích Linuxu.
Krok 1:Vytvořte nový odkládací soubor
Nejprve vytvořte soubor s požadovanou velikostí odkládacího prostoru. Řekněme, že chci do svého systému přidat 1 GB odkládacího prostoru. Pomocí příkazu fallocate vytvořte soubor o velikosti 1 GB.
sudo fallocate -l 1G /swapfile
Doporučuje se povolit pouze rootovi číst a zapisovat do odkládacího souboru. Když se pokusíte použít tento soubor pro odkládací oblast, uvidíte dokonce varování jako „nezabezpečená oprávnění 0644, 0600 navržena“.
sudo chmod 600 /swapfile
Pamatujte, že název odkládacího souboru může být jakýkoli. Pokud potřebujete více odkládacích prostorů, můžete mu dát jakýkoli vhodný název, například swap_file_1, swap_file_2 atd. Je to pouze soubor s předdefinovanou velikostí.
Krok 2:Označte nový soubor jako odkládací prostor
Musíte sdělit systému Linux, že tento soubor bude použit jako odkládací prostor. Můžete to udělat pomocí nástroje mkswap.
sudo mkswap /swapfile
Měli byste vidět výstup jako tento:
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=7e1faacb-ea93-4c49-a53d-fb40f3ce016a
Krok 3:Povolte odkládací soubor
Nyní váš systém ví, že odkládací soubor lze použít jako odkládací prostor. Ale to ještě není hotovo. Musíte povolit odkládací soubor, aby váš systém mohl začít používat tento soubor jako odkládací.
sudo swapon /swapfile
Nyní, když zkontrolujete odkládací prostor, měli byste vidět, že váš systém Linux jej rozpoznává a používá jako odkládací oblast:
swapon --show
NAME TYPE SIZE USED PRIO
/swapfile file 1024M 0B -2
Krok 4:Proveďte změny natrvalo
Cokoli jste dosud udělali, je dočasné. Restartujte systém a všechny změny zmizí.
Změny můžete provést natrvalo přidáním nově vytvořeného odkládacího souboru do souboru /etc/fstab.
Před provedením jakýchkoli změn v souboru /etc/fstab je vždy dobré vytvořit zálohu.
sudo cp /etc/fstab /etc/fstab.back
Nyní můžete na konec souboru /etc/fstab přidat následující řádek:
/swapfile none swap sw 0 0
Můžete to udělat ručně pomocí textového editoru příkazového řádku nebo stačí použít následující příkaz:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Nyní máte vše na svém místě. Váš odkládací soubor bude použit i po restartování systému Linux.
Upravte swappiness
Parametry swapiness určují, jak často by se měl odkládací prostor používat. Hodnota swapiness se pohybuje od 0 do 100. Vyšší hodnota znamená, že swapovací prostor bude využíván častěji.
Výchozí swappiness na ploše Ubuntu je 60, zatímco na serveru je 1. Swappiness můžete zkontrolovat pomocí následujícího příkazu:
cat /proc/sys/vm/swappiness
Proč by servery měly používat nízkou swappiness? Protože swap je pomalejší než RAM a pro lepší výkon, měla by být RAM využívána co nejvíce. Na serverech je faktor výkonu rozhodující, a proto je swappinness co nejnižší.
Swappiness můžete změnit za běhu pomocí následujícího příkazu systemd:
sudo sysctl vm.swappiness=25
Tato změna je však pouze dočasná. Pokud chcete, aby to bylo trvalé, můžete upravit soubor /etc/sysctl.conf a přidat hodnotu swappiness na konec souboru:
vm.swappiness=25
Změna velikosti odkládacího prostoru v systému Linux
Existuje několik způsobů, jak můžete změnit velikost odkládacího prostoru v Linuxu. Ale než to uvidíte, měli byste se kolem toho naučit pár věcí.
Když požádáte váš systém, aby přestal používat odkládací soubor pro odkládací oblast, přenese všechna data (přesněji stránky) zpět do RAM. Před výměnou byste tedy měli mít dostatek volné paměti RAM.
Proto je dobrým zvykem vytvořit a povolit další dočasný odkládací soubor. Tímto způsobem, když odložíte původní odkládací oblast, váš systém použije dočasný odkládací soubor. Nyní můžete změnit velikost původního odkládacího prostoru. Dočasný odkládací soubor můžete odstranit ručně nebo jej ponechat tak, jak je, a při příštím spuštění se automaticky smaže.
Pokud máte dostatek volné paměti RAM nebo jste vytvořili dočasný odkládací prostor, vyměňte původní soubor.
sudo swapoff /swapfile
Nyní můžete použít příkaz fallocate ke změně velikosti souboru. Řekněme, že ji změníte na velikost 2 GB:
sudo fallocate -l 2G /swapfile
Nyní označte soubor znovu jako odkládací prostor:
sudo mkswap /swapfile
A znovu zapněte swap:
sudo swapon /swapfile
Můžete se také rozhodnout mít více odkládacích souborů současně.
Odstranění odkládacího souboru v Linuxu
Možná máte své důvody, proč nepoužíváte odkládací soubor v Linuxu. Pokud jej chcete odstranit, postup je podobný tomu, který jste právě viděli při změně velikosti swapu.
Nejprve se ujistěte, že máte dostatek volné paměti RAM. Nyní vyměňte soubor:
sudo swapoff /swapfile
Dalším krokem je odstranění příslušné položky ze souboru /etc/fstab.
A nakonec můžete soubor odstranit, abyste uvolnili místo:
sudo rm /swapfile
Vyměňujete?
Myslím, že nyní dobře rozumíte konceptu odkládacích souborů v Linuxu. Nyní můžete snadno vytvářet odkládací soubory nebo měnit jejich velikost podle svých potřeb.
Pokud máte k tomuto tématu cokoli dodat nebo máte nějaké pochybnosti, zanechte prosím níže komentář.