Mam laptopa Debian (Buster) z 8 GB pamięci RAM i 16 GB wymiany. Prowadzę bardzo długie zadanie. Oznacza to, że mój laptop był włączony przez ostatnie sześć dni, gdy się przepełniał.
Robiąc to, okresowo muszę używać laptopa jako laptopa. To nie powinno stanowić problemu; długo działające zadanie jest związane z operacjami we / wy, pracując na dyskach twardych USB i nie zajmuje dużo pamięci RAM (<200 MB) ani procesora (<4%).
Problem polega na tym , że gdy wrócę do laptopa po kilku godzinach, będzie bardzo powolny i powrót do normy może zająć 30 minut. Jest to tak złe, że monitory awarii sygnalizują, że ich odpowiednie aplikacje zostały zawieszone (zwłaszcza okna przeglądarki) i wszystko zaczyna się niepoprawnie zawieszać.
Patrząc na monitor systemowy, z 2,5 GB używanej około połowy zmienia się w swap. Potwierdziłem, że to jest problem, usuwając przestrzeń wymiany ( swapoff /dev/sda8
). Jeśli zostawiam go bez przestrzeni wymiany, wraca do życia prawie natychmiast, nawet po 24 godzinach. Dzięki zamianie jest to właściwie cegła przez pierwsze pięć minut, która pozostała tylko na sześć godzin. Potwierdziłem, że użycie pamięci nigdy nie przekracza 3 GB, nawet gdy mnie nie ma.
Próbowałem sprowadzić swapiness ( patrz także: Wikipedia ) do wartości 10
i 0
, ale problem nadal występuje. Wygląda na to, że po dniu bezczynności jądro uważa, że cały GUI nie jest już potrzebny i czyści go z pamięci RAM (zamienia na dysk). Długotrwałym zadaniem jest czytanie przez rozległe drzewo plików i czytanie każdego pliku. Więc może być tak, że jądro jest zdezorientowane myśleniem, że buforowanie pomoże. Ale przy jednym przejściu 2 TB USB HD z ~ 1 miliardem nazw plików, dodatkowa pamięć RAM RAM nie poprawi wydajności. To tani laptop z powolnym dyskiem twardym. Po prostu nie może wystarczająco szybko załadować danych z powrotem do pamięci RAM.
Jak mogę powiedzieć Linuksowi, aby korzystał z przestrzeni wymiany tylko w sytuacjach awaryjnych? Nie chcę biegać bez zamiany. Jeśli wydarzy się coś nieoczekiwanego, a system operacyjny nagle potrzebuje dodatkowych kilku GB, nie chcę, aby zadania zostały zabite i wolałbym zacząć korzystać z wymiany. Ale w tej chwili, jeśli pozostawię włączoną zamianę, mojego laptopa po prostu nie można używać, gdy jest to potrzebne.
Dokładna definicja „sytuacji nadzwyczajnej” może być przedmiotem dyskusji. Ale aby wyjaśnić, co mam na myśli: w nagłym przypadku system miałby miejsce bez żadnej innej opcji niż zamiana lub zabijanie procesów.
Co to jest nagły wypadek? - Czy naprawdę musisz zapytać? ... Mam nadzieję, że nigdy nie znajdziesz się w płonącym budynku!
W tym pytaniu nie mogę zdefiniować wszystkiego, co mogłoby stanowić sytuację wyjątkową. Ale na przykład może się zdarzyć sytuacja, gdy jądro jest tak wypychane do pamięci, że zaczęło zabijać procesy za pomocą OOM Killera . Awaryjne NIE jest, gdy jądro uważa, że może poprawić wydajność za pomocą swap.
Ostateczna edycja: Zaakceptowałem odpowiedź, która robi dokładnie to, o co prosiłem na poziomie systemu operacyjnego. Przyszli czytelnicy powinni również wziąć pod uwagę odpowiedzi oferujące rozwiązania na poziomie aplikacji.