Jak skonfigurować swap pod Linuxem

Pojawienie się tanich serwerów VPS wyposażonych w bardzo szybkie dyski SSD sprawiło, że bardziej zaawansowanym użytkownikom ich zakup da więcej możliwości niż nieco tańsze konta hostingowe. Tanie VPSy najczęściej nie mają zbyt dużej dostępnej pamięci RAM, dlatego konieczne jest skonfigurowanie pliku wymiany (swap).

Chesz przetestować działanie poniższych instrukcji, a nie masz dostępu do serwera Linuxowego? Po rejestacji na DigitalOcean otrzymasz 100 dolarów do wykorzystania w ciągu 60 dni, a z przyjaznym interfejsem uruchomisz ulubioną dystrybucję w ciągu paru minut.

W przeciwnym wypadku w razie braku pamięci system zacznie zabijać procesy marnujące pamięć – najczęściej będzie to serwer MySQL który często używany jest nie tylko na stronach WWW ale też w popularnych serwerach pocztowych.

Niniejszy wpis został opracowany z użyciem systemu Centos 7, ale użyte w nim komendy powinny zadziałać też z innymi wersjami.

Sprawdzenie wymagań

W pierwszej kolejności za pomocą polecenia swapon -s należy sprawdzić czy swap nie jest obecny już w systemie. Jeżeli po jego wykonaniu nie jest wyświetlona żadna informacja można śmiało przystąpić do działania.

Następnie przydałoby się upewnić czy na dysku jest dostatecznie dużo miejsca używając polecenia df -h.

Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        20G  4,5G   15G  24% /
devtmpfs        240M     0  240M   0% /dev
tmpfs           246M     0  246M   0% /dev/shm
tmpfs           246M   29M  217M  12% /run
tmpfs           246M     0  246M   0% /sys/fs/cgroup

Na głównym dysku (/dev/vda1) jest aż 15 gigabajtów wolnej przestrzeni co w zupełności wystarczy.

Tworzenie i aktywowanie pliku swap

Generalną regułą jest aby plik swap miał wielkość odpowiadającą ilości RAMu na serwerze. W sytuacjach gdy plik wymiany musi być większy niż ilość pamięci lepiej rozważyć jej rozszerzenie.

W pierwszej kolejności należy utworzyć plik który posłuży za swap za pomocą komendy sudo fallocate -l 1G /swapfile dopasowując wielkość lub nazwę do własnych potrzeb. Następnie poleceniem ls -lh /swapfile sprawdzić czy plik został utworzony i ma poprawną wielkość.

-rw-r--r--. 1 root root 1073741824 Aug 23 19:52 /swapfile

Zanim utworzony plik zostanie ustawiony jako swap trzeba będzie nadać uprawnienia odczytu i zapisu wyłącznie dla roota poleceniem sudo chmod 600 /swapfile. Ponowne użycie ls -lh /swapfile powinno dać następujący wynik:

-rw-------. 1 root root 1073741824 Aug 23 19:52 /swapfile

Teraz Pozostaje przygotować plik sudo mkswap /swapfile.

Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=f909b6c6-edba-4c20-8e13-ed648cbfe78c

Oraz swap komendą sudo swapon /swapfile oraz zweryfikować za pomocą swapon -s czy wszystko jest w porządku. Teraz system powinien zwrócić:

Filename                Type        Size    Used    Priority
/swapfile               file        1048572 0       -1

Ustawienie by plik wymiany był na stałe

Choć swap jest już skonfigurowany, będzie on działał do następnego uruchomienia serwera. Aby ustawienia był on na stałe, za pomocą ulubionego edytora tekstu, w pliku /etc/fstab należy dodać następującą linijkę /swapfile   swap    swap    sw  0   0.