Acabei de descobrir que meu sistema não tem espaço de troca
Se isso for verdade, provavelmente está contribuindo para o problema.
Ao usar várias VMs com grandes alocações de memória, uma quantidade de RAM que normalmente seria mais que suficiente para o uso normal (8 GB) começa a ficar reduzida, o que significa que seu sistema não poderá usar tanto cache e desejará trocar . Agora, se você não tiver uma troca, haverá ainda mais pressão na memória e você poderá até matar as tarefas devido à falta de memória.
O Swap tenta melhorar a estabilidade e o desempenho gerais em situações como a descrita, realocando alguns dados alocados, mas raramente usados, na memória para o disco, liberando memória para os dados que você está usando. Adicionar swap, se você realmente não tiver nenhum, ajudará. No entanto, em termos de desempenho, você fará muito mais aprimoramentos se comprar mais RAM ou usar menos.
Em um sistema em que você está executando VMs, mas também usando uma área de trabalho comum no host da VM, não deseja que suas VMs ocupem toda a sua RAM; na verdade, eu economizaria metade da sua RAM (até 4 GB ) para o host, desde que você esteja executando o software no host e queira que ele seja responsivo.
Observe também que as VMs têm ineficiências inerentes, não apenas porque sua RAM é totalmente separada, elas não compartilham nenhum cache ou buffers, mas estão executando um sistema operacional inteiro e separado sob várias camadas de abstração. Portanto, você sempre poderá obter melhor eficiência se decidir executar algo no host e não em uma VM - embora se seu objetivo de usar VMs for usar outros sistemas operacionais, isso não será possível.
Existe uma maneira de garantir que a interface do usuário permaneça responsiva quando meu sistema estiver debulhando?
Quando a quantidade de RAM que você tem é um problema, tudo o que você pode fazer é apenas um hack - a solução real é comprar mais RAM (embora no seu caso, como mencionei, você possa alocar menos para as VMs).
Sua pergunta é feita em termos simples - você deseja que a interface do usuário possa continuar a operar sem problemas, mesmo se o IO estiver congestionado. No entanto, é complicado responder. Seu sistema já estará fazendo isso da melhor maneira possível: operações que não requerem acesso ao disco não serão atrasadas. Se a sua "interface do usuário está gaguejando", é porque o processo específico responsável por essa interface do usuário precisa de acesso ao disco. Em uma situação de pouca memória e em que o disco está debulhando, mesmo algo que normalmente será trivial - como ler algumas configurações do diretório inicial para descobrir quais são as suas preferências de exibição - pode ser lento devido ao esgotamento do cache do disco.
Eu poderia imaginar algo como um "bom" para a memória (para que eu pudesse agradar o Chrome e minha VM)
Não há realmente um "bom para a memória". O acesso à memória é tão rápido que você geralmente pode praticamente ignorá-lo. Quando você está debatendo, não é memória, é disco, esse é o problema. Há uma "ionice" por causa disso. Embora isso provavelmente não seja o que eu recomendaria para o seu problema.
Outro equivalente aproximado de "bom para a memória" é a troca - você não pode controlar a troca de cada processo individualmente, mas o sistema faz um bom trabalho em descobrir quais processos você está usando ativamente e, portanto, é uma prioridade mais alta a ser mantida. RAM.
Mas, como eu disse e como é uma regra de ouro, se você estiver ficando sem memória RAM, comprar mais memória RAM é a solução com menos dores de cabeça e inconvenientes.