-
SWAP w pliku
Odpowiednia ilość pamięci operacyjnej odgrywa niezwykle ważną rolę w pracy serwera. Uruchamiamy coraz więcej aplikacji, strony stają się coraz bardzo zasobożerne, a to wszystko „kosztuje” nasz RAM, który niestety nie tanieje, wręcz przeciwnie. W takim razie musimy ratować się pamięcią typu SWAP. Jest to nic innego jak partycja systemowa obecna w systemach unixowych, używana w sytuacjach, kiedy zabraknie fizycznej pamięci operacyjnej lub w przypadku, gdy uruchomione zadania (procesy) już jej nie potrzebują. Czasem przechowywanie danych tymczasowych na dysku twardym jest korzystniejsze niż w RAM-ie. Mając własny serwer dedykowany możemy określić ilość pamięci typu SWAP samy. Kupując jednak. VPS-a mamy do dyspozycji pewną określoną wielkość tej partycji. Jej zwiększenie możliwe jest najczęściej po dopłacie określonej sumy pieniędzy. Pewnie nie wszyscy wiecie, ale jest możliwość zwiększenia SWAP-a dokładając do obecnego w systemie jako wydzielona partycja specjalnie wygenerowany plik. Zakładając sytuację, że potrzebujemy ~500 MB dodatkowej przestrzeni SWAP, generujemy przy pomocy narzędzia „dd” plik np. o nazwie swapfile.
dd if=/dev/zero of=/swapfile bs=10240 count=50000
W powyższym przykładzie plik wygeneruje się w „/”. Oczywiście można ten parametr zmodyfikować. Następnie tworzymy swap wydając w konsoli polecenie:
mkswap /swapfile
Następnie włączamy nasz „plikowy” swap
swapon /swapfile
Aby sprawdzić działające SWAP-y należy wydać komendę:
cat /proc/swaps
W wyniku otrzymujemy:
[root@minotaur:~] # cat /proc/swaps
Filename Type Size Used Priority
/dev/sda2 partition 524280 29820 -1
/swapfile file 127992 0 -2
Każdorazowe ręczne włączenie plikowego swapa zmniejsza priorytet. Wyższy priorytet oznacza pierwszeństwo w używaniu. Standardowy priorytet partycji SWAP to -1. Mozna to zmienić edytując plik „/etc/fstab”. Istniejący wpis:
/dev/sda2 none swap sw 0 0
zmieniamy na:
/dev/sda2 none swap pri=10 0 0
W powyższym przykładzie parametr „pri=10” oznacza priorytet 10. Aby nasz plikowy SWAP aktywował się z każdym uruchomieniem naszej maszyny dodajemy do „/etc/fstab”:
/swapfile none swap pri=8 0 0
Tutaj priorytet ustawiliśmy na 8. Zapełniana więc będzie wpierw partycja dyskowa SWAP, a potem nasz plik. Mam nadzieję, że opisane przeze mnie rozwiązanie komuś się przyda.
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.