Tworzenie pliku swap na serwerze VPS

vps
zarządzanie
poradnik-miesiąca
Tagi: #<Tag:0x00007f3444e03948> #<Tag:0x00007f3444e03790> #<Tag:0x00007f3444e034e8>

#1

Swap

Przy samodzielnej instalacji systemu instalator często proponuje nam, abyśmy utworzyli partycję na swap. Swap służy jako przedłużenie ramu, w sytuacjach kiedy ramu zacznie nam brakować, system zacznie pisać po swapie, dzięki czemu nasze aplikacje, zamiast wywalić się z powodu braku ramu, spowolnią swoje działanie, gdyż zaczną używać tej partycji jako pamięci ulotnej. Domyślnie instalowany system z instalatora jednak nie daje nam domyślnie utworzonego swapu. Żeby nie mieszać w partycjach, możemy utworzyć zwykły plik, który posłuży nam jako swap. W tym poradniku przedstawię jak utworzyć taki plik i jak aktywować go na naszym serwerze vps.

Tworzenie pliku

Musimy zacząć od stworzenia pliku który będzie miał taki rozmiar jaki chcemy nadać naszemu swapowi. Proponuję utworzyć go w katalogu /var/ pod nazwą swapfile, ale równie dobrze możemy utworzyć go w innej lokalizacji, odpowiednio zmieniając polecenia. Na ogół zalecanym rozmiarem swapu jest połowa rozmiaru pamięci ram, ale nic nie stoi na przeszkodzie aby utworzyć większy, lub mniejszy.

TIP: Domyślnie używanym systemem plików jest EXT4, więc możemy podążyć tą pierwszą drogą.

Jeżeli nasz system plików to XFS, EXT4 lub BTRFS, możemy użyć szybkiej komendy

sudo fallocate -l <rozmiar w gigabajtach>G /var/swapfile

np

sudo fallocate -l 2G /var/swapfile

Jeżeli po wykonaniu polecenia nie wyświetli się nam żaden dodatkowy komunikat to jest dobrze. Możemy już przejść do sekcji montowania swapu :slight_smile:

Jeżeli jednak zdecydowaliśmy się przy instalacji systemu na inny system plików, to musimy użyć wolniejszej metody. Zaczynamy od utworzenia pustego pliku poleceniem

sudo touch /var/swapfile

Teraz, gdy mamy pusty plik, musimy rozszerzyć go do potrzebnego rozmiaru. W tym celu możemy użyć polecenia

sudo dd if=/dev/zero of=/var/swapfile bs=<rozmiar w gigabajtach>G count=1

np dla 2GB swapu:

sudo dd if=/dev/zero of=/var/swapfile bs=2G count=1

Montowanie swapu

Jeżeli nasz plik jest już gotowy, możemy już go montować. w tym celu musimy najpierw utworzyć w nim swap poleceniem

sudo mkswap /var/swapfile

Po wykonaniu tego polecenia możemy spodziewać się komunikatu podobnego do tego:
image

Ze względów bezpieczeństwa w tym momencie dobrze jest zmienić uprawnienia do tego pliku, ponieważ możliwość czytania go przez dowolnych użytkowników może drastycznie uprościć wykradanie danych przez nie do końca zaufane aplikacje.

sudo chmod 0600 /var/swapfile

Teraz możemy ten swap uruchomić poleceniem

sudo swapon /var/swapfile

A także, żeby nasz nowoutworzony swap ładował się przy starcie systemu, musimy dodać wpis o nim do /etc/fstab. Możemy to zrobić jednym poleceniem

echo "/var/swapfile swap swap auto 0 0" | sudo tee -a /etc/fstab

Gotowe! Nasz swap będzie się już ładował i będzie normalnie używany przez system. Domyślne ustawienia swapu na ogół są wystarczające, system całkiem nieźle nim zarządza. Jeżeli jednak chcemy, żeby swap był używany tylko wtedy, gdy naprawdę brakuje ramu, a nie wtedy kiedy system uzna, że dobrym pomysłem jest go użyć, możemy ustawić tzw. swappiness na 10 za pomocą tych dwóch poleceń:

sudo sysctl -w vm.swappiness=10 echo vm.swappiness = 10 | sudo tee -a /etc/sysctl.conf

źródło: https://meta.discourse.org/t/create-a-swapfile-for-your-linux-server/13880

Poradnik miesiąca: listopad 2018


Nagrody za aktywność - listopad '18
Partycja swap nie działa
#2

Literówka :wink:

Poza tym poradnik fajny. Co prawda niektóre systemy przy instalacji pytają się, czy utworzyć swap, ale poradnik jak najbardziej na +