Přidání odkládacího prostoru (swapu) na server je vynikající možností, jak kompenzovat chyby způsobené nedostatkem paměti. Linux umožňuje uživatelům přidat do systému odkládací prostor, když je operační paměť RAM plná. Vytvořením vyhrazeného diskového oddílu umožníte fyzické paměti hladký chod bez velkých obav z nedostatku místa na disku.
Přehled swapu
Odkládací prostor (swap) v Linuxu je součástí virtuální paměti počítače, která se používá, když dojde místo ve fyzické paměti. Zejména při práci s velkým programem nebo aplikací, kde vzniká potřeba další paměti, je swap ideální volbou pro dočasné uložení neaktivních stránek paměti. Vytvoření swapu umožňuje uživatelům ukládat data při spuštění velkých programů, a tím snižuje pády aplikací. To znamená, že pokud systém potřebuje více paměťových prostředků a paměť RAM je plná, všechny neaktivní stránky v paměti se přesunou do swapu a programy mohou běžet bez přerušení.
Jak velký swap potřebuji?
Velikost swapu závisí na několika faktorech. Patří mezi ně dostupná paměť RAM, zatížení systému a to, zda má systém podporovat funkci hibernace (uspání na disk). V tabulce níže naleznete doporučenou velikost swapu na základě dostupné paměti RAM:
|
Čís. |
Dostupná paměť RAM |
Doporučená velikost swapu |
|
1. |
1GB |
1GB |
|
2. |
2GB |
1GB |
|
3. |
3GB |
2GB |
|
4. |
4GB |
2GB |
|
5. |
5GB |
2GB |
|
6. |
6GB |
2GB |
|
7. |
8GB |
3GB |
V tomto návodu vás provedeme kroky pro přidání swapu v systému Ubuntu 20.04. Začněme!
Požadavky
Chcete-li postupovat podle tohoto návodu, budete potřebovat:
- Nainstalované Ubuntu ve vašem systému.
- Uživatelský účet jiný než root nastavený s oprávněními sudo na vašem počítači.
Krok 1: Kontrola informací o swapu
Velikost swapu závisí na paměti RAM systému. Před jeho vytvořením je proto nezbytné zkontrolovat dostupnost swapu ve vašem systému. Zadáním níže uvedeného příkazu zkontrolujte, zda má systém nakonfigurovaný nějaký swap:
|
1 |
$ sudo swapon --show |
Zobrazený výstup znamená, že v systému je k dispozici prostor pro vytvoření swapu. Žádný výstup je však signálem, že pro přidání swapu není dostatek volného místa.
Použijte nástroj free k ověření, že není aktivní žádný swap:
|
1 |
$ free -h |
Uvidíte výstup s nulovým řádkem pro swap:
Krok 2: Kontrola dostupnosti diskového oddílu
Podobně jako při kontrole dostupnosti systému nyní zkontrolujme aktuální využití disku, abychom se ujistili, že máme dostatek místa. Použijte příkaz df ke kontrole dostupnosti diskového oddílu:
|
1 |
df -h |
Zařízení s / ve sloupci Připojeno v je náš disk, který má 11% volného místa. Uvidíte výstup:
Po kontrole požadavků systému pokročme dále a vytvořme swap soubor v našem souborovém systému.
Krok 3: Vytvoření swap souboru
Chcete-li vytvořit swap soubor v našem souborovém systému, přidělte název souboru jako swapfile v kořenovém (/) adresáři pomocí fallocate programu. Přidělení velikosti souboru závisí na vašich potřebách. Aby byl návod jednoduchý a srozumitelný, vytváříme 1G soubor a vyhrazujeme 1G RAM. Použijte příkaz sudo k vytvoření swap souboru:
|
1 |
sudo fallocate -l 1G /swapfile |
Dále zadejte tento příkaz pro ověření vyhrazeného místa:
|
1 |
$ ls -lh /swapfile |
Nyní, když jsme v systému vytvořili swap, pojďme jej v dalším kroku povolit.
Krok 4: Povolení swap souboru
Jakmile máme k dispozici správnou velikost, převeďme ji na swap. Z bezpečnostních důvodů je zásadní zpřístupnit náš soubor pouze uživatelům s oprávněním root a zabránit v přístupu běžným uživatelům. Přidáme omezení, aby soubor a jeho obsah mohli prohlížet pouze uživatelé s root oprávněními. Použijte následující root příkaz, aby byl soubor přístupný pouze uživatelům root :
|
1 |
sudo chmod 600 /swapfile |
Poté použijte příkaz ls k ověření změn:
|
1 |
$ ls -lh /swapfile |
Jak vidíte, pouze uživatel root má povoleny příznaky pro čtení a zápis:
Poté označte soubor jako swap:
|
1 |
sudo mkswap /swapfile |
Uvidíte výstup:
Poté povolte swap soubor a umožněte našemu systému jej začít používat:
|
1 |
sudo swapon /swapfile |
Dále ověřte dostupnost swapu:
|
1 |
$ sudo swapon --show |
Uvidíte výstup:
Stejně jako v Kroku 1, zkontrolujeme free prostor nástroje ještě jednou:
|
1 |
free -h |
Uvidíte výstup:
Náš swap byl úspěšně nastaven a náš operační systém jej začne podle potřeby používat. V dalším kroku nastavíme swap soubor jako trvalý.
Krok 5: Nastavení trvalého swap souboru
Ve výchozím nastavení server po restartu automaticky nezachová nastavení swapu. Chcete-li změnit výchozí nastavení a hrát na jistotu, přidáme swap soubor do našeho souboru /etc/fstab. Pomocí příkazu sudo zálohujte soubor /etc/fstab soubor:
|
1 |
sudo cp /etc/fstab /etc/fstab.bak |
Dále přidejte informace o swap souboru na konec vašeho souboru /etc/fstab zadáním:
|
1 |
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab |
Poté si projdeme některá nastavení a provedeme úpravy, abychom mohli náš swap prostor vyladit.
Krok 6: Úprava nastavení swapu
V tomto kroku nakonfigurujeme nastavení a provedeme několik úprav. Pojďme upravit vlastnost swappiness a změnit tlak na mezipaměť.
-
Upravte vlastnost Swappiness
Parametr swappiness je nastavitelný parametr jádra. Mění rovnováhu mezi odkládáním operační paměti a zajišťuje výměnu dat při odkládání dat z RAM do swap prostoru. Tato hodnota parametru je vyjádřena v procentech v rozsahu od 0 do 100.
Hodnota vm.swappiness má přímý vliv na chování swappiness systému. Čím vyšší je vm.swappiness, tím více bude systém swapovat a naopak. Pokud je hodnota blízká nule, jádro nebude data swapovat, což může vést ke snížení výkonu. Umožnit systému, aby nebyl příliš závislý na swapu, je vynikající způsob, jak zvýšit jeho výkon a dosáhnout rychlé odezvy.
Na druhou stranu, vm.swappiness blížící se 100 se snaží umístit více dat do swapu a méně do fyzické paměti. Na rozdíl od nízké až průměrné hodnoty vm.swappiness má vysoké swapování systému velmi nežádoucí účinky, pokud dochází k aktivnímu swapování velkého množství dat dovnitř a ven z RAM.
Zkontrolujte aktuální hodnotu swappiness zadáním:
|
1 |
cat /proc/sys/vm/swappiness |
Uvidíte výstup:
Můžete také nastavit swappiness podle své volby pomocí příkazu sysctl. Nastavme hodnotu swappiness na 15 zadáním:
|
1 |
sudo sysctl vm.swappiness = 15 |
Uvidíte výstup:
Dokud nebude systém restartován, nastavení zůstane tak, jak je. Přidejte řádek do našeho souboru /etc/sysctl.conf pro automatické nastavení hodnoty při restartu:
|
1 |
sudo nano /etc/sysctl.conf |
Na konec můžete přidat následující kód:
|
1 |
Vm.swappiness = 15 |
Poté soubor uložte a zavřete.
-
Upravte tlak na mezipaměť (Cache Pressure)
Dále upravíme vfs_cache_pressure, což se postará o informace inode a dentry oproti jiným datům. Tato vfs_cache_pressure nastavení také řídí tendenci jádra uvolňovat paměť používanou pro ukládání adresářů do mezipaměti. Znovu přejděte do souborového systému proc a zkontrolujte aktuální hodnotu:
|
1 |
cat /proc/sys/vm/vfs_cache_pressure |
Uvidíte výstup:
Vzhledem k tomu, že konfigurace je již hotová, náš systém odstraní informace o inodech z mezipaměti. Nastavme sysctl vm.vfs_cache_pressure na stabilnější nastavení takto:
|
1 |
sudo sysctl vm.vfs_cache_pressure = 60 |
Uvidíte výstup:
Podobně jako u nastavení swappiness můžeme konfiguraci změnit i zde:
|
1 |
sudo nano /etc/sysctl.conf |
Na konec vložte řádek s novou hodnotou, kterou jste vytvořili:
|
1 |
Vm.vfs_cache_pressure = 60 |
Nakonec soubor uložte a zavřete.
Závěr
Odkládací prostor (swap) můžete přidat jako vyhrazený swapovací oddíl, swapovací soubor nebo kombinaci obojího. Můžete vytvořit swapovací prostor a využít jeho výhod k bezproblémovému spouštění aplikací bez velkých obav z varování o nedostatku paměti. I když je vytvoření swapovacího prostoru výhodou v systémech s omezeným množstvím paměti, nesmí být považováno za alternativu k větší paměti RAM. Nezapomeňte, že swapovací prostor se nachází na pevném disku, takže můžete zaznamenat o něco pomalejší přístupovou dobu ve srovnání s fyzickou pamětí.
Zde najdete další návody na našem blogu, které vám pomohou začít s vašimi servery Ubuntu:
- Nastavení připojení NFS na Ubuntu 20.04
- Instalace Nginx na Ubuntu 18.04
- Konfigurace firewallu pomocí UFW na Ubuntu 18.04
Příjemnou práci!










Komentáře
Zatím žádné komentáře. Buďte první.