Swap to przestrzeń na dysku twardym, która jest wykorzystywana w momencie zapełnienia pamięci RAM. Linux przeniesie część nieaktywnych danych z pamięci RAM do swap.
Swap może mieć postać pliku lub oddzielnej partycji. Niżej opiszę jak dodać lub zwiększyć istniejący plik swap.
Dodanie przestrzeni swap.
Na początek sprawdźmy czy nasz system ma włączoną przestrzeń swap.
sudo swapon --show
Jeżeli powyższe polecenie nic nie zwróci oznacza to iż swap jest nie aktywny. W innym przypadku otrzymamy coś takiego:
NAME TYPE SIZE USED PRIO
/swapfile file 4G 2,4G -2
Tworzymy plik swap:
sudo fallocate -l 4G /swapfile
lub jeżeli nie mamy zainstalowanej aplikacji fallocate
sudo dd if=/dev/zero of=/swapfile bs=1024 count=4194304
Nadajemy uprawnienia:
sudo chmod 600 /swapfile
Tworzymy przestrzeń swap:
sudo mkswap /swapfile
Uruchamiamy swap:
sudo swapon /swapfile
Dodajemy poniższą informację o naszej przestrzeni swap do pliku /etc/fstab aby była aktywowana podczas uruchamiania systemu:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Sprawdzamy czy swap jest aktywny:
sudo swapon --show
Usuwanie przestrzeni swap.
Wyłączamy swap:
sudo swapoff -v /swapfile
Usuwamy plik swap:
sudo rm /swapfile
Komentujemy lub usuwamy wpis z /etc/fstab:
sudo sed -i 's/\/swapfile/#\/swapfile/g' /etc/fstab
Tweaki swapowania systemu.
Domyślną wartością systemie jest 60 co oznacza, że w przypadku zapełnienia pamięci RAM w 60% kernel zacznie zrzucać dane do przestrzeni swap. Im większa liczba kernel agresywniej będzie korzystać ze swap.
Sprawdzamy co mamy ustawione:
cat /proc/sys/vm/swappiness
Zapewne wynikiem będzie liczba 60 czyli jest ok. Niemniej jednak jeżeli chcielibyśmy zmienić tą wartość wydajemy następujące polecenie:
sudo sysctl vm.swappiness=30
Info:
Z reguły tworzymy Swap=RAM w przypadku desktopów z 16GB/32GB RAM nie ma konieczności w ogóle tworzyć swapu o ile nie wykonujemy skomplikowanych operacji. W przypadku serwerów swap jest wręcz konieczny oraz desktopów z pamięcią<=8GB RAM.