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 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 :)
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=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:
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