Ostatnio u mnie koszty maszyn wirtualnych poszły bardzo w górę. Postanowiłem coś z tym zrobić, część zlikwidowałem, część zmieniłem na prostsze i tańsze. Wiązało się to ze zmniejszeniem ilości pamięci RAM, co w skrajnym przypadku uniemożliwiało pełne uruchomienie maszyny.
Aby sobie z tym poradzić w tani sposób, tworzymy plik wymiany. Zamiast z drogiej pamięci RAM, system będzie korzystał z tańszego dysku twardego, kosztem wydajności. Na początek sprawdźmy rozmiar nieszczęścia poleceniem
sudo swapon --show
Wynik u mnie był pusty – a więc w domyślnej konfiguracji maszyna serwerowa nie korzysta z pliku wymiany.
Polecenie:
sudo fallocate -l 4G /swapfile
Tworzy w katalogu głównym plik swapfile
o wielkości 4GB (jak szaleć, to szaleć). Następnie ustawiamy mu właściwe uprawnienia
sudo chmod 600 /swapfile
i oznaczamy jako plik wymiany
sudo mkswap /swapfile
Teraz już pozostaje nakazać systemowi korzystanie z naszego nowo utworzonego pliku wymiany
sudo swapon /swapfile
I możemy się cieszyć dodatkową pamięcią dostępną dla aplikacji. Możemy to zweryfikować wspomnianym na początku poleceniem
sudo swapon --show
Pozostaje ostatnia rzecz do zrobienia – chcemy aby nasze zmiany działały również po restarcie maszyny. W tym celu musimy do pliku /etc/fstab
dodać na końcu linijkę
/swapfile swap swap defaults 0 0
i sprawa załatwiona.
Ale, ale…
Pisałem, że maszyna się nie chciała uruchomić. Jak to zrobiłem? Po prostu, dołożyłem RAM, wykonałem wyżej opisane kroki i zmniejszyłem dostępną pamięć. Wszystko działa. Aktualnie wykorzystanie pliku wymiany mam na poziomie 1.2GB