Niepotrzebne zamiany w systemie Linux

4

Wydaje się, że czasami mój komputer zaczyna się niepotrzebnie zamieniać (zużycie pamięci wynosi ~ 25%) i nie mogę zrozumieć, dlaczego.

Wydaje się, że zdarza się to najczęściej podczas uruchamiania skryptów Perla, ale nie są to intensywne skrypty i nie mogę znaleźć niczego, co mówi, że Perl widzi tylko pewną ilość pamięci. Użycie wymiany nadal występuje po zakończeniu skryptów, a nawet po zamknięciu Firefoksa, Banshee itp. Ponowne uruchomienie X czasami rozwiązuje problem, ale innym razem wymagane jest pełne ponowne uruchomienie.

Staje się to dla mnie dużym problemem, ponieważ gdy tylko cokolwiek się zmieni, wszystko wydaje się również. Podstawowe rzeczy, takie jak zamykanie programu lub zmiana punktów widzenia, trwają coraz dłużej. Jeśli pozostanie niezaznaczone, to użycie zamiany ostatecznie zmusi mój komputer do nieokreślonego bicia, nie mogąc nawet zareagować na naciśnięcia klawiszy!

Korzystam z jądra Ubuntu 9.04, 2.6.28-15, mam 4 GB pamięci RAM i zwykle siedzę przy ~ 25% użyciu.

Próbowałem też obniżyć „zamianę”, ale bez powodzenia.

Ryan Fox
źródło
Jak monitorujesz zamianę - vmstat? Czy możesz sprawdzić, co się stanie, jeśli użyjesz swapoffdo wyłączenia przestrzeni wymiany?
nagul
Proszę zamieścić dane wyjściowe free -mi cat /proc/meminfo. To naprawdę brzmi, jakbyś używał znacznie powyżej 25%.
derobert
Nie byłem w stanie tego odtworzyć od czasu zadania pytania. Zaktualizuję, kiedy to się powtórzy.
Ryan Fox

Odpowiedzi:

3

Moja propozycja to ustawienie swapiness na 0.

Ustawienie swapiness na „niższą liczbę” może zmniejszyć „częstotliwość” używania swap, ale ustawienie go na 0 zmusi jądro w dół do innej ścieżki kodu, zmuszając całą alokację pamięci do pierwszego wykorzystania całej dostępnej pamięci i pamięci podręcznej przed użyciem swap przestrzeń.

Możesz ustawić swapiness na zero, wydając następujące czynności:

echo 0> / proc / sys / vm / swappiness

Patrick
źródło