Jak přidat odkládací prostor na Ubuntu | Howto add and increase swap file (Ubuntu)
Ú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:
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:
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:
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:
Můžeme ověřit, že bylo rezervováno správné množství místa, zadáním:
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:
Ověřte změnu oprávnění zadáním:
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:
OutputSetting 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:
Ověřte, že je swap dostupný zadáním:
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í:
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:
Přidejte informace o odkládacím souboru na konec vašeho /etc/fstabsoubor zadáním:
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:
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:
Outputvm.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:
Dole můžete přidat:
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:
Output100
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:
Outputvm.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:
Dole přidejte řádek, který určuje vaši novou hodnotu:
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/