Przestrzeń wymiany SWAP jako plik

Spis treści

Każdy system operacyjny musi być przygotowany na ewentualność wyczerpania się pamięci operacyjnej RAM. W przypadku gdyby nie był, groziłoby mu powieszenie się. Są różne metody ochrony maszyn z linuxami na pokładzie przed tego typu sytuacją. Jedne z nich zakładają wykorzystanie wbudowanych w kernel mechanizmów takich jak choćby oom-killer, który ma za zadanie zabijać te najbardziej żarłoczne procesy. Są również bardziej łagodne sposoby na uchronienie komputera przed zbyt szybkim wyczerpaniem się pamięci i w tym wpisie omówimy sobie przestrzeń wymiany SWAP.

SWAP -- plik czy partycja?

Przestrzeń wymiany SWAP w linuxie można określić na dwa sposoby. Pierwszym z nich jest wydzielenie całej partycji, drugim zaś jest zwykły plik, do którego będą zapisywane dane niemieszczące się w pamięci RAM. W przypadku gdy posiadamy dużą ilość pamięci operacyjnej, raczej nie musimy zawracać sobie głowy przestrzenią wymiany. No chyba, że zamierzamy hibernować system, wtedy nie ma innego wyjścia. Natomiast jeśli chodzi o samo działanie systemu, to te z większą ilością pamięci nie potrzebują przestrzeni wymiany.

Czasem jednak zdarza się tak, że raz na jakiś czas potrzebujemy zabezpieczenia w formie SWAP i co w przypadku gdy przeszliśmy etap partycjonowania i nie uwzględniliśmy tam przestrzeni wymiany? Możemy przejść cały proces jeszcze raz, możemy też wydzielić trochę miejsca poprzez skurczenie którejś z istniejących już partycji. Możemy także utworzyć przestrzeń wymiany jako zwykły plik.

Posiadanie przestrzeni SWAP w formie partycji jak i zwykłego pliku ma swoje zalety i wady. Jeśli zdecydowaliśmy się na partycję SWAP, to będzie nam ona szybciej działać. Jeśli wolimy plik, to nie musimy się bawić partycjami ale za to dostęp do danych będzie wolniejszy no i istnieje możliwość fragmentacji. Tak czy inaczej, tutaj skupimy się jak ze zwykłego pliku zrobić przestrzeń wymiany, bo to może sprawiać jakieś problemy.

Procedura przygotowania pliku

Procedura jest prosta. Musimy stworzyć plik o określonym rozmiarze, a następnie wskazać go systemowi, w taki sposób, by go używał jako przestrzeni wymiany. Do utworzenia pliku posłużymy się programem dd . W zależności od tego ile przestrzeni potrzebujemy, plik może przyjąć większy lub mniejszy rozmiar. W przykładzie poniżej, ma on 512MiB:

# dd if=/dev/zero of=/swap.512 bs=1M count=512

Mając przygotowany plik, musimy go odpowiednio sformatować. Do tego celu służy narzędzie mkswap i jest ono takie samo co w przypadku tworzenia zwykłej partycji:

# mkswap /swap.512

Teraz już tylko pozostało nam uaktywnienie tej przestrzeni wymiany:

# swapon /swap.512

Oczywiście takie manualne operowanie na tym pliku nie jest wygodne. Możemy zautomatyzować cały proces definiując odpowiedni wpis w pliku /etc/fstab :

/swap.512  swap swap defaults,pri=10 0 0

Od tego momentu, ten plik będzie automatycznie montowany w systemie jako przestrzeń wymiany.

Mikhail Morfikov avatar
Mikhail Morfikov
Po ponad 10 latach spędzonych z różnej maści linux'ami (Debian/Ubuntu, OpenWRT, Android) mogę śmiało powiedzieć, że nie ma rzeczy niemożliwych i problemów, których nie da się rozwiązać. Jedną umiejętność, którą ludzki umysł musi posiąść, by wybrnąć nawet z tej najbardziej nieprzyjemniej sytuacji, to zdolność logicznego rozumowania.