Czasami pracuję z dużymi zrzutami danych, które chcę zachować w pamięci do przetwarzania. Czasami przeliczyłem ilość pamięci, którą wytworzy mój program, lub debugger zwielokrotnia użycie pamięci przez czynnik, który przekracza moją dostępną pamięć.
Ilekroć zaczynam proces wymagający dużej ilości pamięci, tego właśnie oczekuję od rozsądnego systemu operacyjnego: spróbuj zjeść całą wolną pamięć, a następnie poproś o inne nieistotne procesy, aby zrezygnować z pamięci, której nie potrzebują, a następnie napisz do zamiany.
Oto, co robi dla mnie Ubuntu: zjedz całą wolną pamięć, następnie poproś system operacyjny o zamianę wszystkich niezbędnych usług (sesja gnome, terminal, klawiatura), a następnie zamrożenie i poczekaj, aż wyciągnę wtyczkę.
Dwa pytania:
- Jak system operacyjny może założyć, że wszystko może być tak ważne, że można przestać słuchać informacji wprowadzanych przez użytkownika?
- Jak mogę powiedzieć Ubuntu, aby nigdy nie zamieniał podstawowych usług i zawsze reagował na dane wejściowe użytkownika, nawet jeśli jakiś głupi proces próbuje zużyć więcej zasobów niż zapewnia system.
swappiness
ustawienie na 10, tj .: vm.swappiness = 10
w /etc/sysctl.conf. Wyszukaj tutaj swapiness, aby uzyskać więcej informacji na ten temat. 2) Jeśli zamiana nie pomoże ... Nawet jeśli nie chcesz ... zwiększyć rozmiaru pliku wymiany do 1,5x16G i sprawdź, czy to pomoże. Informuj mnie na bieżąco. Pozdrawiam, Al
vm.swappiness=10
musi zostać DODANO do sysctl.conf. Doświadczona osoba może nawet użyć komendy sysctl w locie, aby ustawić vm.swappiness = 10, bez edytowania pliku sysctl.conf. Pozdrawiam, Al ps: czekam na odpowiedź OP.
swapon
aby się dowiedzieć)? Pozdrawiam, Al