Wymuszenie przeniesienia pamięci ze SWAP do pamięci RAM

Uwaga: Ten wpis został utworzony ponad rok temu. Informacje w nim zawarte mogą być nieaktualne!

Często zdarza się tak, że po zakończeniu używania pamięciożernej aplikacji (np. maszyna wirtualna) SWAP jest zapchany, podczas gdy zostało jeszcze dużo wolnej pamięci RAM. Objawia się to wtedy, kiedy np. po zamknięciu owej ciężkiej aplikacji, przywrócenie wcześniej uruchomionych aplikacji, które zostały zminimalizowane, trwa długo i towarzyszy temu „mielenie” dysku.

Efekt ten można łatwo zaobserwować na komputerach, które mają mało pamięci RAM, np. na moim starym laptopie z 880 MB RAM. Można temu zapobiec stosując prosty trick.

Aby wymusić przeniesienie danych znajdujących się w SWAP do pamięci RAM wydaj polecenie:

sudo swapoff -a

Następnie poczekaj, aż dysk przestanie pracować (dioda dysku twardego na obudowie powinna przestać migać). Dla pewności możesz sprawdzić czy SWAP został wyłączony dowolnym monitorem pamięci lub poleceniem free -m. Kiedy wszystkie dane zostaną skopiowane włącz SWAP ponownie:

sudo swapon -a
Jeżeli powyższy artykuł nie rozwiązał lub rozwiązał częściowo Twój problem, dodaj swój komentarz opisujący, w którym miejscu napotkałeś trudności.
Mile widziane komentarze z uwagami lub informacjami o rozwiązaniu problemu.
  • http://piotr.lemiesz.pl piotr

    Można na stałe zmienić politykę swapowania, tak aby kernel nie wypychał do swapa rzadko używanych rzeczy, to parametr swappiness, poradnik np. tutaj

  • RafciX

    Moim zdaniem i tak najlepiej nie używać partycji SWAP :D

    • Admc

      Przy braku partycji SWAP niektóre programy mogą działać niepoprawnie lub woniej niż w przypadku posiadania ww. partycji.

      • RafciX

        Oczywiście nie mówię tego o komputerach z 512MB RAM (kiedyś tak miałem i przez SWAP system masakrycznie wolno chodzi, a w dodatku często się wieszał). Akurat teraz przy 1536MB RAMu nie mam SWAPU i system chodzi świetnie :) Z tego co pamiętam to ostatnio system zawiesił mi się, gdy uruchomiłem maszynę wirtualną i Firefox`a (brakło RAMu).

        • Admc

          A ja mam 4 GB ramu i preferuje zrobić symboliczny swap o wielkości 512 MB. Zdarza mi się zapchać około 95% ramu i wtedy dzięki swapowi komputer jako tako działa.

  • andygem

    Parę lat temu , na Ubuntu 7.04 rozbudowałem pamięć do 2GB (dwie sparowane kości Geil’a cl 2,0 ) i doszedłem do wniosku , że SWAP nie jest mi potrzebny a miejsce na dysku jak najbardziej :-) . Jednak bardzo się zdziwiłem po pierwszym uruchomieniu Firefoxa – lisek otwierał się b. długo , jeszcze dłużej wyszukiwał, wieszał się itp. Pogrzebałem w sieci i okazało się , że na linuksie niektóre aplikacje potrzebują zarezerwować sobie , tak na wszelki wypadek , miejsce na SWAP’ie już w momencie startu , nawet jeśli z niego nie będą korzystać . Być może aktualna wersja liska już tego nie potrzebuje , nie chce mi się sprawdzać czy istnieją inne aplikacje mające podobne potrzeby – po prostu od tego czasu zawsze tworzę 512 MB SWAP’u , mimo , że mam teraz 4GB RAM . W końcu dyski są coraz większe ;-) .