Podczas instalacji systemu Linux, pytani jesteśmy o wielkość partycji SWAP, która posłuży nam do tymczasowego przechowywania danych w sytuacji, gdy ich ilość przekracza zasoby wolnej pamięci RAM lub gdy z różnych powodów korzystniej jest przechowywać je (lub ich część) na dysku twardym. Wielkość tej partycji ustalamy na podstawie dostępnej pamięci fizycznej w komputerze.

Sposób montowania tej partycji można obejrzeć w pliku /etc/fstab.

/dev/sda2       none            swap    sw              0       0

Jeżeli posiadamy dużo pamięci RAM możemy ograniczyć lub całkowicie zrezygnować z użycia partycji wymiany. Za tę opcję odpowiedzialny jest parametr vm.swappiness. Współczynnik ten określa jak często i chętnie system korzysta z partycji SWAP. Domyślnie wartość ta ustalona jest na 60. Wartość 0 powoduje rezygnację z użycia SWAPa.

Aktualną wartość można sprawdzić wydając dowolne z poniższych poleceń:

paszczak000@muszelka:~$ cat /proc/sys/vm/swappiness
60
paszczak000@muszelka:~$ sysctl vm.swappiness
vm.swappiness = 60

Nadmierne wykorzystanie pamięci SWAP może doprowadzić do tak zwanego swapowania. Jeżeli chcemy zmienić, aby system korzystał ze SWAPa tylko w ostateczności wydajemy jako root polecenie:

sysctl vm.swappiness=5

Należy pamiętać, że takie ustawienia będą działały do następnego restartu systemu. Jeżeli chcemy wprowadzić je na stałe musimy edytować plik /etc/sysctl.conf i dopisać lub zmienić w nim linijkę vm.swappiness=5. Po zmianie ustawień w tym pliku warto wydać polecenie sysctl -p, aby przeładować ustawienia. Możemy również zrezygnować z partycji wymiany na rzecz pliku wymiany.

Przy tworzeniu pliku wymiany może pomóc skrypt mkswap.sh. Uruchamiamy go w następujący sposób:

root@muszelka:~# ./mkswap.sh /boot 1024 fstab

a następnie dopisujemy do /etc/fstab, następującą linijkę:

/boot/swapfile.1024MB    swap    swap    defaults    0 0

Plik taki możemy również stworzyć sami za pomocą podstawowych narzędzi jakie udostępnia nam system. Po ustaleniu wielkości pliku wymiany mnożymy jego wielkość przez 1024 (rozmiar bloku). Jeśli zatem plik wymiany ma zajmować 64 MB to rozmiar jego bloku będzie wynosił 65536. Aby utworzyć ten plik wydajemy polecenia:

root@muszelka:~# dd if=/dev/zero of=/swapfile bs=1024 count=65536
root@muszelka:~# mkswap /swapfile

Następnie możemy włączyć w użycie nasz plik poleceniem swapon /swapfile lub dopisać do /etc/fstab. Wtedy plik wymiany zostanie załadowany dopiero po ponownym uruchomieniu komputera.

  • Woowas

    Przydałoby się wspomnieć o możliwości rezygnacji z partycji SWAP na rzecz pliku wymiany.

  • Mówisz i masz. Poszerzyłem artykuł ;-)

  • zen

    Sorry, ale rozpowszechniacie szkodliwe bzdury. Nie powinno się zabierać głosu w tonie porady, w sprawach, o których nie ma się pojęcia.

  • Szyderca

    Ciekawie jakie zen7 znalazłeś tutaj bzdury?. Pewnie jesteś kolejnym trollem, który chce się wylansować.

  • Też mam takie odczucie. Bo tekst ciekawy i mi się podoba ;)

  • m_gol

    Zgadzam się z zen7. Domyślne ustawienia są jakie są nie bez powodu. System powinien używać swapa nie dopiero wtedy, gdy mu zaczyna brakować pamięci. To prowadzi do sytuacji, gdy do swapa trafia po prostu to, co się nie zmieściło; często bardzo potrzebne rzeczy. System POWINIEN używać swapa bardzo wcześnie, np. gdy ma zużycie 50% RAM-u. Linux pakuje tam rzeczy, do których system rzadko się odwołuje. Powoduje to leciutki (bo przecież są to rzeczy rzadko używane!) narzut wydajnościowy, którego nikt nie poczuje, a za to gdy RAM-u zaczyna brakować, system nagle nie zwolni.

    Nie polecam bawić się w takie rzeczy ludziom, którzy nie wiedzą, w jakim celu przyjęto domyślne rozwiązanie. Bo przecież nie na złość użytkownikom.

    A jeśli ktoś ma na tyle dużo RAM-u, że sądzi, że swap my niepotrzebny, może go przecież wyłączyć całkowicie. Ja tak zrobiłem na swoim kompie z 4 GB pamięci.