Dodawanie swap na DigitalOcean

DigitalOcean

Wprowadzenie

Swap jest to zwykle systemowa partycja występująca w systemach typu UNIX. Służy do tymczasowego przechowywania danych w sytuacji gdy ich ilość przekracza wielkość dostępną w RAM lub gdy z różnych powodów korzystniej jest przechowywać je lub ich część na dysku twardym.

Standardowo serwery utworzone w DigitalOcean pozbawione są partycji swap może to mieć wpływ na słabszą wydajność np. mysql. Rozwiązaniem na poprawę wydajności serwera i ochronę przed ewentualnymi błędami pamięci w aplikacjach jest zwiększenie lub dodanie przestrzeni wymiany (swap). Przestrzeń swap zostanie wykorzystana w momencie gdy zostaną wykorzystane zasoby pamięci RAM.

Dostęp do danych zapisanych na dysku będzie znacząco wolniejszy niż informacje przechowywane w pamięci RAM, system sam określa które dane mogą pozostać w RAM a które przenieść na przestrzeń wymiany. Gdy zimniejsza się zapotrzebowanie na pamięć RAM system automatycznie zmniejsza złożycie swap a dane przenosi do RAM.

Zbadanie dostępne ilości miejsca na dysku

W przypadku DigitalOcean zmiana schematu partycjonowania nie jest praktycznie możliwa, dlatego też skorzystamy z pliku wymiany, umieścimy go na istniejącej partycji.

Informacje o dostępnej przestrzeni uzyskamy wpisując:
df -h
w odpowiedzi dostaniemy:
Filesystem Size Used Avail Use% Mounted on
/dev/disk/by-label/DOROOT 20G 8.3G 11G 45% /
udev 10M 0 10M 0% /dev
tmpfs 100M 13M 87M 13% /run
tmpfs 249M 4.0K 249M 1% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 249M 0 249M 0% /sys/fs/cgroup
tmpfs 50M 0 50M 0% /run/user/1000

Ponieważ mój system VPS ma 512 MB RAM zdecydowałem się na stworzenie dwa razy większej przestrzeni wymiany (swap) czyli 1GB.

Tworzenie pliku /swapfile

sudo dd if=/dev/zero of=/swapfile bs=1G count=1
lub
sudo fallocate -l 1G /swapfile

Włączenie pliku wymiany

Obecnie posiadamy tylko plik, system jeszcze go nie wykorzystuje. Musimy go do tego zmusić, ale zanim to nastąpi zmienimy uprawnienia, tak aby był dostępny tylko dla użytkownika root.
Nie możemy pozwolić na zapis i odczyt dla inych użytkowników stanowiło by to ogromne zagrożenie dla bezpieczeństwa.
sudo chmod 600 /swapfile
Następnie wykonujemy polecenie które pozwoli systemowi operacyjnemu na korzystanie z pliku jako przestań wymiany.
sudo mkswap /swapfile
Tak przygotowany plik możemy użyć jako przestrzeń wymiany, właczamy go używając polecenia:
sudo swapon /swapfile
W celu weryfikacji możemy użyć polecenia:
sudo swapon -s
Filename Type Size Used Priority
/swapfile file 1048572 17200 -1

lub
free -m
total used free shared buffers cached
Mem: 494 446 47 34 80 208
-/+ buffers/cache: 157 336
Swap: 1023 16 1007

Automatyczne montowanie pliku jako przestrzeń wymiany

Gdy uruchomimy ponownie nasz VPS okaże się że niema dodanej przez nas przestrzeni wymiany, aby temu zapobiec, należy wykonać edycję pliku /etc/fstab.
sudo nano /etc/fstab
lub
sudo vim /etc/fstab
i dodajemy na końcu pliku
/swapfile   none    swap    sw    0   0

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *