Todas as distribuições GNU / Linux que testei até agora têm o problema de que, sempre que a memória RAM é preenchida e o sistema começa a ser trocado, toda a interface gráfica do usuário e da área de trabalho fica sem resposta, como um inferno, a tal ponto que às vezes eu tenho que esperar cerca de 5 a 10 segundos depois tendo movido o mouse físico até que o ponteiro do mouse esteja realmente se movendo.
Esse é um tipo de comportamento irritante, especialmente em sistemas com pouca memória RAM.
Existe alguma maneira de dar a alguns aplicativos / trabalhos, como o ambiente de desktop, etc., uma prioridade mais alta para permanecer no RAM do que outros aplicativos, para que o aplicativo que realmente monopoliza toda a memória seja trocado antes do ambiente de desktop etc.?
EDIT: Estou falando do caso em que toda a RAM é usada, portanto ela sempre começará a trocar se não estiver desativada (não quero que os processos sejam mortos aleatoriamente). Eu tive esse problema não apenas em ambientes com pouca RAM, mas também com 8GiB de RAM na minha máquina desktop, em parte devido a muitas VMs, em parte por causa de vazamento de memória. O ZRAM também não é uma solução, pois está apenas atrasando o problema. A única solução em que posso pensar para esse problema é algum utilitário de espaço do usuário ou API do kernel que permite impedir a troca de determinados trabalhos ou, pelo menos, torná-lo muito improvável. Alguém conhece outra solução ou sabe alguma coisa sobre essa ferramenta ou API existente ou sendo planejada?
2ª EDIT: ulatencyd parece não funcionar com versões mais recentes do systemd, de acordo com https://aur.archlinux.org/packages/ulatencyd-git/ e https://wiki.archlinux.org/index.php/Ulatencyd . Isso pode ocorrer porque o systemd assumiu o controle total dos cgroups da perspectiva do espaço do usuário, se eu entendi corretamente.
cgroup_enable=memory swapaccount=1
na linha de comando do kernel; observe que isso tem um custo menor de desempenho). Exemplo de implementação: ulatencyd .