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
.
Warto tez pamiętać o monitorowaniu SWAP. Bez względu na wszystko, zasób ten jednak potrafi również się „zadławić” i mocno spowolnić pracę działających aplikacji. Wbrew pozorom, monitorowanie SWAP może nas uchronić przed najgorszym. Gdyby ktoś się zastanawiał jak to rozwiązać to polecam Zabbix.