Swap który zamieszkał w pliku

Oddzielna partycja swap w Linuksie urosła do rangi monstra przed którym niedoszli użytkownicy Linuksa ostrzegają się nawzajem. Bowiem dla wielu osób czynność tworzenia takiej partycji podczas instalacji systemu była czymś wykraczającym poza wymiary naszego wszechświata. Nawet pomimo legendy o tym, jak to oddzielna przestrzeń wymiany uczyniła z Linuksa potęgę wydajności. Prawda jest jednak nieco inna i jako tako trzymała się kupy do wydania kernela 2.6. Owszem, dawniej system mógł się lepiej dogadywać z przestrzenią wymiany na dedykowanej partycji, szczególnie gdy znajdowała się ona na początku dysku. Niemniej przy obecnych dyskach, linuksowym kernelu który już zapomniał o protoplaście 2.6 oraz ilości pamięci RAM jakim dysponujemy, swap jest traktowany jako relikt przeszłości. A przecież może się przydać.

Niewdzięczne zajęcie – tworzenie partycji swap
Od przybytku głowa nie boli. Zatem nawet jeżeli mamy w naszym komputerze 16GB pamięci RAM, to powinniśmy przewidzieć momenty krytyczne w których system jednak zdecyduje się zrzucić jakąś porcję danych na dysk. Nawet niewielką, nawet na chwilkę – ale zawsze może zaistnieć taka sytuacja. Dlatego nie pogardzajmy przestrzenią wymiany nawet w okolicach 0.5 – 1GB. Szczególnie, że dla naszego dysku to praktycznie żaden poważny ubytek pojemności. Chyba, że ktoś planuje wykonywać hibernację systemu. Wtedy ten rozmiar musi się co najmniej równać ilości naszej pamięci RAM. Ale co to w ogóle za pomysł, aby krzewić koncepcję swapa umieszczonego w pliku?

Problem z oddzielną partycją swap polega na tym, że trzeba pamiętać o jej stworzeniu podczas instalacji. Ręka do góry kto zapomniał o tym kroku kiedykolwiek podczas stawiania systemu? No właśnie. Późniejsze rzeźbienie dysku i wydzielanie nowej przestrzeni jest średnio przyjemnym zadaniem. Drugim mankamentem swapa na partycji jest jego nieelastyczny charakter. Przypuścimy, że zachodzi potrzebna jego zwiększenia. Kolejny argument to niemal brak różnicy w wydajności. Jedyny scenariusz który przewiduje gorszą wydajność swapa w pliku niż na oddzielnym miejscu na dysku jest przypadek stworzenia pliku swap na bardzo pofragmentowanym systemie plików.

Zatem, postawiliśmy system, zapomnieliśmy o partycji swap – czy zaczynać wszystko od nowa? Absolutnie nie. Swap w pliku będzie również dobry, a niekiedy i lepszy (zawsze można zwiększyć jego objętości). Wszystko czego potrzebujemy to wspomniany plik, aktywowanie go jako systemu wymiany, dopisanie do /etc/fstab. Nic prostszego.

  • Tworzymy plik wymiany

  • sudo dd if=/dev/zero of=/extraswap bs=1M count=1024
    Powyższe utworzy plik 1GB (1M * 1024)

  • Poprawiamy prawa dostępu

  • sudo chmod 600 /extraswap

  • Inicjalizujemy go jako swap

  • sudo mkswap /extraswap

  • Aktywujemy

  • sudo swapon /extraswap

  • Upewniamy się, że działa

  • free -m

  • Dodajemy na stałe do /etc/fstab

  • sudo sh -c 'echo "/extraswap swap swap defaults 0 0" >> /etc/fstab'

Tak, tylko tyle. Od tego momentu nie musimy kombinować z oddzielnymi partycjami, stworzoną przestrzeń wymiany możemy w każdym momencie powiększyć/zmniejszyć (polecenie dd). A różnice w wydajności – ciekawe, czy ktoś zauważy.