Jak přidat odkládací prostor na Ubuntu | Howto add and increase swap file (Ubuntu)

Jak přidat odkládací prostor na Ubuntu 20.04Úvod

Jedním ze způsobů, jak se chránit proti chybám z nedostatku paměti v aplikacích, je přidat na váš server nějaký odkládací prostor. V této příručce se budeme zabývat tím, jak přidat odkládací soubor na server Ubuntu 20.04.

Co je Swap?

Swap je část úložiště na pevném disku, která byla vyhrazena pro operační systém k dočasnému ukládání dat, která již nemůže pojmout v paměti RAM. To vám umožní zvýšit množství informací, které může váš server uchovávat ve své pracovní paměti, s určitými výhradami. Odkládací prostor na pevném disku se využije hlavně v případě, kdy již není dostatek místa v paměti RAM pro uložení dat používaných aplikací.

Informace zapisované na disk budou výrazně pomalejší než informace uložené v paměti RAM, ale operační systém bude preferovat ponechání spuštěných dat aplikace v paměti a použití swapu pro starší data. Celkově vzato může být swapovací prostor jako záložní pro případ, že je RAM vašeho systému vyčerpána, dobrou bezpečnostní sítí proti výjimkám z nedostatku paměti na systémech s dostupným úložištěm bez SSD.

Krok 1 – Kontrola informací o swapu v systému

Než začneme, můžeme zkontrolovat, zda má systém již k dispozici nějaký odkládací prostor. Je možné mít více odkládacích souborů nebo odkládacích oddílů, ale obecně by měl stačit jeden.

Zda má systém nakonfigurovaný swap, můžeme zjistit zadáním:

sudo swapon –show


Pokud nedostanete zpět žádný výstup, znamená to, že váš systém aktuálně nemá k dispozici odkládací prostor.

Můžete ověřit, že neexistuje žádný aktivní swap pomocí freeužitečnost:

free -h

Output
              total        used        free      shared  buff/cache   available
Mem:          981Mi       122Mi       647Mi       0.0Ki       211Mi       714Mi
Swap:            0B          0B          0B

Jak můžete vidět ve Swap výstupu na řádku

Krok 2 – Kontrola dostupného místa na oddílu pevného disku

Než vytvoříme náš odkládací soubor, zkontrolujeme aktuální využití disku, abychom se ujistili, že máme dostatek místa. Udělejte to zadáním:

df -h

Output
Filesystem      Size  Used Avail Use% Mounted on
udev            474M     0  474M   0% /dev
tmpfs            99M  932K   98M   1% /run
/dev/vda1        25G  1.4G   23G   7% /
tmpfs           491M     0  491M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           491M     0  491M   0% /sys/fs/cgroup
/dev/vda15      105M  3.9M  101M   4% /boot/efi
/dev/loop0       55M   55M     0 100% /snap/core18/1705
/dev/loop1       69M   69M     0 100% /snap/lxd/14804
/dev/loop2       28M   28M     0 100% /snap/snapd/7264
tmpfs            99M     0   99M   0% /run/user/1000

Zařízení s /v Mounted onsloupec je v tomto případě náš disk. V tomto příkladu máme k dispozici dostatek místa (použito pouze 1,4G). Vaše použití bude pravděpodobně jiné.

Přestože existuje mnoho názorů na vhodnou velikost odkládacího prostoru, opravdu záleží na vašich osobních preferencích a požadavcích vaší aplikace. Obecně je dobrým výchozím bodem množství rovné nebo dvojnásobné velikosti paměti RAM ve vašem systému. Dalším dobrým pravidlem je, že cokoli přes 4G swapu je pravděpodobně zbytečné, pokud to používáte pouze jako záložní paměť RAM.

Krok 3 – Vytvoření odkládacího souboru

Nyní, když známe naše dostupné místo na pevném disku, můžeme vytvořit odkládací soubor na našem souborovém systému. Přidělíme soubor velikosti, kterou chceme nazvat swapfilev našem kořenu ( /) adresář.

Nejlepší způsob, jak vytvořit odkládací soubor, je pomocí fallocateprogram. Tento příkaz okamžitě vytvoří soubor zadané velikosti.

Protože server v našem příkladu má 1G RAM, vytvoříme v této příručce soubor 1G. Upravte to tak, aby vyhovovalo potřebám vašeho vlastního serveru:

sudo fallocate -l 1G /swapfile

Můžeme ověřit, že bylo rezervováno správné množství místa, zadáním:

ls -lh /swapfile

-rw-r--r-- 1 root root 1.0G Apr 25 11:14 /swapfile

Náš soubor byl vytvořen se správným prostorem vyhrazeným.

Krok 4 – Povolení odkládacího souboru

Nyní, když máme k dispozici soubor správné velikosti, musíme jej skutečně přeměnit na odkládací prostor.

Nejprve musíme uzamknout oprávnění souboru, aby root obsah mohli číst To zabrání normálním uživatelům v přístupu k souboru, což by mělo významné bezpečnostní důsledky.

Zpřístupněte soubor pouze rootovi zadáním:

sudo chmod 600 /swapfile

 

Ověřte změnu oprávnění zadáním:

ls -lh /swapfile

Output
-rw------- 1 root root 1.0G Apr 25 11:14 /swapfile

Jak vidíte, pouze root má povoleny příznaky čtení a zápisu.

Nyní můžeme soubor označit jako odkládací prostor zadáním:

sudo mkswap /swapfile
 Output
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=6e965805-2ab9-450f-aed6-577e74089dbf

Po označení souboru můžeme povolit odkládací soubor, který umožní našemu systému jej začít používat:

sudo swapon /swapfile

Ověřte, že je swap dostupný zadáním:

sudo swapon --show

Output
NAME      TYPE  SIZE USED PRIO
/swapfile file 1024M   0B   -2

Můžeme zkontrolovat výstup freeužitečnost znovu k potvrzení našich zjištění:

free -h
Output
              total        used        free      shared  buff/cache   available
Mem:          981Mi       123Mi       644Mi       0.0Ki       213Mi       714Mi
Swap:         1.0Gi          0B       1.0Gi

Náš swap byl úspěšně nastaven a náš operační systém jej začne používat podle potřeby.

Krok 5 – Zajištění trvalého odkládacího souboru

Naše nedávné změny povolily odkládací soubor pro aktuální relaci. Pokud však restartujeme, server neuchová nastavení swapu automaticky. Můžeme to změnit přidáním odkládacího souboru do našeho /etc/fstabsoubor.

Zálohujte /etc/fstabsoubor pro případ, že by se něco pokazilo:

sudo cp /etc/fstab /etc/fstab.bak

 

Přidejte informace o odkládacím souboru na konec vašeho /etc/fstabsoubor zadáním:

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Dále zkontrolujeme některá nastavení, která můžeme aktualizovat, abychom vyladili náš odkládací prostor.

Krok 6 – Vyladění nastavení Swap

Existuje několik možností, které můžete nakonfigurovat a které budou mít dopad na výkon vašeho systému při práci se swapem.

Úprava vlastnosti Swappiness

The swappinessParametr konfiguruje, jak často váš systém odkládá data z RAM do odkládacího prostoru. Toto je hodnota mezi 0 a 100, která představuje procento.

S hodnotami blízkými nule jádro nevymění data na disk, pokud to není nezbytně nutné. Pamatujte, že interakce s odkládacím souborem jsou „drahé“ v tom, že trvají mnohem déle než interakce s RAM a mohou způsobit výrazné snížení výkonu. Když řeknete systému, aby se na swap moc nespoléhal, váš systém bude obecně rychlejší.

Hodnoty blížící se 100 se pokusí vložit více dat do swapu ve snaze udržet více volného místa RAM. V závislosti na paměťovém profilu vašich aplikací nebo na tom, k čemu server používáte, to může být v některých případech lepší.

Aktuální hodnotu swappiness zobrazíme zadáním:

cat /proc/sys/vm/swappiness
 
Output
60

Pro Desktop není nastavení swappiness 60 špatná hodnota. U serveru jej možná budete chtít posunout blíže k 0.

Můžeme nastavit swappiness na jinou hodnotu pomocí sysctlpříkaz.

Chcete-li například nastavit swappiness na 10, mohli bychom napsat:

sudo sysctl vm.swappiness=10

Output
vm.swappiness = 10

Toto nastavení zůstane zachováno až do příštího restartu. Tuto hodnotu můžeme nastavit automaticky při restartu přidáním řádku do našeho /etc/sysctl.confsoubor:

sudo nano /etc/sysctl.conf

Dole můžete přidat:

/etc/sysctl.conf
vm.swappiness=10

Po dokončení uložte a zavřete soubor.

Úprava nastavení tlaku mezipaměti

Další související hodnota, kterou možná budete chtít upravit, je vfs_cache_pressure. Toto nastavení konfiguruje, jak moc se systém rozhodne ukládat do mezipaměti inode a dentry informace před ostatními daty.

V podstatě se jedná o přístupové údaje o souborovém systému. To je obecně velmi nákladné vyhledávat a velmi často vyžadováno, takže je to pro váš systém vynikající věc pro ukládání do mezipaměti. Aktuální hodnotu můžete zobrazit dotazem na procznovu souborový systém:

cat /proc/sys/vm/vfs_cache_pressure
 Output
100

Jak je aktuálně nakonfigurován, náš systém odstraňuje informace o inodech z mezipaměti příliš rychle. Můžeme to nastavit na konzervativnější nastavení, jako je 50, zadáním:

sudo sysctl vm.vfs_cache_pressure=50
 Output
vm.vfs_cache_pressure = 50

Opět to platí pouze pro naši aktuální relaci. Můžeme to změnit přidáním do našeho konfiguračního souboru, jako jsme to udělali s naším nastavením swappiness:

sudo nano /etc/sysctl.conf

Dole přidejte řádek, který určuje vaši novou hodnotu:

/etc/sysctl.conf
vm.vfs_cache_pressure=50

Po dokončení uložte a zavřete soubor.

Závěr

Dodržování kroků v této příručce vám poskytne určitý prostor pro dýchání v případech, které by jinak vedly k výjimkám z nedostatku paměti. Odkládací prostor může být neuvěřitelně užitečný při předcházení některým z těchto běžných problémů.

Pokud se setkáváte s chybami OOM (nedostatek paměti) nebo pokud zjistíte, že váš systém není schopen používat aplikace, které potřebujete, nejlepším řešením je optimalizovat konfigurace aplikací nebo upgradovat server.

Source: https://www.digitalocean.com/community/tutorials/how-to-add-swap-space-on-ubuntu-20-04

 

How to increase the size of your swapfile

Always think out of the box. Do not restrict yourself to just Arch Linux articles or ArcoLinux articles.

We use an article for Ubuntu to increase the swap file.

Turn off all swap processes

sudo swapoff -a

Resize the swap (from 512 MB to 8GB)

sudo dd if=/dev/zero of=/swapfile bs=1G count=8

if = input file
of = output file
bs = block size
count = multiplier of blocks

Make the file usable as swap

sudo mkswap /swapfile

Activate the swap file

sudo swapon /swapfile

Check the amount of swap available

grep SwapTotal /proc/meminfo

Source: https://arcolinux.com/how-to-increase-the-size-of-your-swapfile/