Swap je místo na disku, které se používá, když je množství fyzické paměti RAM plné. Když v systému Linux dojde RAM, neaktivní stránky se přesunou z RAM do odkládacího prostoru.
Odkládací prostor může mít formu buď vyhrazeného odkládacího oddílu nebo odkládacího souboru. Při spuštění Ubuntu na virtuálním počítači obvykle není k dispozici odkládací oddíl a jedinou možností je vytvořit odkládací soubor.
Tento tutoriál vysvětluje, jak přidat odkládací soubor na Ubuntu 20.04.
Než začnete #
Swap by neměl být považován za náhradu fyzické paměti. Protože odkládací prostor je částí pevného disku, má pomalejší přístupovou dobu než fyzická paměť. Pokud vašemu systému neustále dochází paměť, měli byste přidat více RAM.
Obecně platí, že velikost odkládacího souboru závisí na tom, kolik RAM má váš systém:
- Systémy s méně než 2 GB RAM - 2krát větší množství paměti RAM.
- Systémy s 2 až 8 GB RAM - stejnou velikost jako velikost paměti RAM.
- Systémy s více než 8 GB RAM - alespoň 4 GB swapu.
Odkládací soubor může aktivovat pouze uživatel root nebo uživatel s právy sudo.
Vytvoření odkládacího souboru #
V tomto příkladu vytvoříme 2 GB
odkládací soubor. Pokud chcete přidat další swap, nahraďte 2G
s velikostí odkládacího prostoru, který potřebujete.
Chcete-li přidat odkládací prostor na Ubuntu 20.04, postupujte takto:
-
Nejprve vytvořte soubor, který bude použit jako swap:
sudo fallocate -l 2G /swapfile
Pokud
fallocate
obslužný program není ve vašem systému přítomen nebo se zobrazí chybová zprávafallocate failed: Operation not supported
, použijte k vytvoření odkládacího souboru následující příkaz:sudo dd if=/dev/zero of=/swapfile bs=1024 count=2097152
-
Nastavte oprávnění k souboru na
600
abyste zabránili běžným uživatelům zapisovat a číst soubor:sudo chmod 600 /swapfile
-
Vytvořte v souboru odkládací oblast Linuxu:
sudo mkswap /swapfile
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes) no label, UUID=fde7d2c8-06ea-400a-9027-fd731d8ab4c8
-
Aktivujte odkládací soubor spuštěním následujícího příkazu:
sudo swapon /swapfile
Chcete-li, aby byla změna trvalá, otevřete
/etc/fstab
soubor:sudo nano /etc/fstab
a vložte následující řádek:
/etc/fstab/swapfile swap swap defaults 0 0
-
Ověřte, že je swap aktivní, pomocí
swapon
nebofree
příkaz, jak je znázorněno níže:sudo swapon --show
NAME TYPE SIZE USED PRIO /swapfile file 2G 0B -1
sudo free -h
total used free shared buff/cache available Mem: 981Mi 97Mi 68Mi 0.0Ki 814Mi 735Mi Swap: 2.0Gi 10Mi 1.9Gi
Úprava hodnoty swappiness #
Swappiness je vlastnost linuxového jádra, která definuje, jak často bude systém používat odkládací prostor. Může mít hodnotu mezi 0 a 100. Nízká hodnota způsobí, že se jádro bude snažit vyhnout swapování, kdykoli je to možné, zatímco vyšší hodnota způsobí, že jádro bude využívat odkládací prostor agresivněji.
Na Ubuntu je výchozí hodnota swappiness nastavena na 60
. Aktuální hodnotu můžete zkontrolovat zadáním následujícího příkazu:
cat /proc/sys/vm/swappiness
60
Zatímco hodnota swappiness 60
je v pořádku pro většinu systémů Linux, pro produkční servery možná budete muset nastavit nižší hodnotu.
Chcete-li například nastavit hodnotu swappiness na 10
, spustit:
sudo sysctl vm.swappiness=10
Chcete-li, aby tento parametr byl trvalý i po restartování, připojte následující řádek do souboru /etc/sysctl.conf
soubor:
vm.swappiness=10
Optimální hodnota swappiness závisí na zátěži vašeho systému a na způsobu využití paměti. Tento parametr byste měli upravovat po malých krocích, abyste našli optimální hodnotu.
Odebrání odkládacího souboru #
Chcete-li deaktivovat a odstranit odkládací soubor, postupujte takto:
-
Nejprve deaktivujte odkládací prostor:
sudo swapoff -v /swapfile
-
Dále odstraňte položku odkládacího souboru
/swapfile swap swap defaults 0 0
z/etc/fstab
soubor. -
Nakonec odstraňte aktuální soubor odkládacího souboru pomocí
rm
příkaz:sudo rm /swapfile