Wszystkie dotychczas przetestowane dystrybucje GNU / Linux mają problem polegający na tym, że gdy pamięć RAM zostanie zapełniona, a system zacznie się zamieniać, cały pulpit i graficzny interfejs użytkownika przestaną reagować jak cholera do tego stopnia, że czasami muszę czekać około 5-10 sekund po poruszając fizyczną myszą, aż wskaźnik myszy faktycznie się poruszy.
Jest to trochę irytujące zachowanie, szczególnie w systemach z niskim RAM.
Czy jest jakiś sposób, aby nadać niektórym aplikacjom / zadaniom, takim jak środowisko pulpitu itp., Wyższy priorytet pozostawania w pamięci RAM niż inne aplikacje, tak aby aplikacja zajmująca całą pamięć została zamieniona przed środowiskiem pulpitu itp.?
EDYCJA: Mówię o przypadku, gdy używana jest cała pamięć RAM, więc zawsze zacznie się zamieniać, jeśli nie zostanie wyłączona (nie chcę, aby procesy były zabijane losowo). Miałem ten problem nie tylko w środowiskach z niskim RAM, ale także z 8GiB RAM na moim komputerze stacjonarnym, częściowo z powodu wielu maszyn wirtualnych, częściowo z powodu wycieku pamięci. ZRAM też nie jest rozwiązaniem, ponieważ tylko opóźnia problem. Jedynym rozwiązaniem, które mogę wymyślić dla tego problemu, jest narzędzie do obsługi przestrzeni użytkownika lub interfejs API jądra, który pozwala w ogóle zapobiec zamianie niektórych zadań lub przynajmniej uczynić je bardzo mało prawdopodobnym. Czy ktoś zna inne rozwiązanie lub wie coś o istnieniu lub planowaniu takiego narzędzia lub interfejsu API?
2. EDYCJA: ulatencyd nie wydaje się działać z nowszymi wersjami systemd, zgodnie z https://aur.archlinux.org/packages/ulatencyd-git/ i https://wiki.archlinux.org/index.php/Ulatencyd . Może to być spowodowane tym, że systemd przejął pełną kontrolę nad grupami z perspektywy przestrzeni użytkownika, jeśli dobrze to rozumiem.
cgroup_enable=memory swapaccount=1
w wierszu poleceń jądra; zwróć uwagę, że ma to niewielki koszt wydajności). Przykładowa implementacja: ulatencyd .