email: darw32@poczta.onet.pl


Linux - 5.Zarządzanie Pamięcią

Używanie Obszaru Wymiany

Zainicjowany swap należy aktywować za pomocą swapon. Program ten powiadamia jądro, że można używać tego obszaru jako swap. Nasz plik wymiany możemy aktywować za pomocą takiego polecenia:

$ swapon /extra-swap
$

Obszary wymiany można aktywować automatycznie - wystarczą odpowiednie wpisy w /etc/fstab:

/dev/hda8        none        swap        sw     0     0
/swapfile        none        swap        sw     0     0

Skrypty strartowe wywołują swapon -a co powoduje aktywację wszystkich obszarów wymiany wyliczonych w /etc/fstab.

Wykorzystanie swapu możesz nadzorować za pomocą programu free, który wypisze aktualne zużycie pamięci:

$ free
               total       used       free     shared    buffers
  Mem:         15152      14896        256      12404       2528
  -/+ buffers:            12368       2784
  Swap:        32452       6684      25768
$

Pierwsza linia (Mem:) zawiera ilość fizycznej pamięci. Kolumna total pokazuje pamięć dostępną dla systemu (ilość fizycznej pamięci odjąć pamięć wykorzystywaną przez jądro). Kolumna used pokazuje ilość pamięci aktualnie wykorzystywanej (druga linia odlicza bufory). Kolumna free pokazuje całkowicie nie używaną pamięć. Kolumna shared pokazuje ilość pamięci dzielonej przez kilka procesów. Kolumna buffers pokazuje aktualny rozmiar buforów dla operacji na urządzeniach blokowych.

Ostatnia linia (Swap:) pokazuje podobne informacje odnośnie obszarów wymiany. Jeżeli linia zawiera same zera swap nie został aktywowany.

Te same informacje dostępne są via top, /proc/meminfo. Aby otrzymać informacje odnośnie wykorzystania poszczególnych obszarów swap zajrzyj do pliku /proc/swaps.

Obszar wymiany można wyłączyć za pomocą swapoff. Wszelkie dane zapisane na danym swapie są najpierw wczytywane do pamięci, jeżeli nie ma miejsca zostają wypisane na inne miejsce. Jeżeli brakuje wirtualnej pamięci Linux zacznie dławić się; po dość długim okresie powinien wyjść z tego, w międzyczasie system będzie bezużyteczny, dlatego przed wyłączeniem obszaru wymiany powinieneś sprawdzić czy istnieje wystarczająca ilość nieużywanej pamięci.

Wszystkie obszary wymiany są automatycznie aktywowane za pomocą swapon -a, deaktywowane przy pomocy swapoff -a; informacje o obszarach wymiany pobierane są z pliku /etc/fstab. Wszystkie ręcznie aktywowane obszary zostaną w użycie.

Czasami swap jest używany pomimo wolnej pamięci. Dzieje się tak po usunięci pamięciożernego procesu. Dane znajdujące się w swapie nie zostaną załadowane aż do żądania ich. W ten sposób zmniejsza się ilość operacji dyskowych i przyśpiesza pracę systemu - następny program można szybko uruchomić, gdyż istnieje nie używana pamięć. Nie powinieneś się tym martwić, ale powinieneś wiedzieć.