Eu tenho uma máquina Linux bastante antiga com 2 GB de RAM, sem swap, e está funcionando muito bem, com o sistema usando cada pedaço de memória não utilizado para o cache com grande efeito.
No entanto, quando estou prestes a estressar a memória (por exemplo, > 1950MB alocados), ela diminui a velocidade; Eu suspeito que é porque não há nenhum buffer de disco sobrando. Eu sei que o assassino da OOM entraria em vigor em breve, mas normalmente não chega lá - está ficando tão lento que carrega gravações para 30-40, nenhum processo faz nenhum progresso (portanto, não aloca mais memória), e Eu tenho que reiniciá-lo.
Quando tento apenas matar um processo para que a máquina responda, por exemplo indo ao console (via Alt-F1, logando, e apenas fazendo um "killall badprocess"), ele normalmente funciona, exceto que eu tenho que esperar ~ 10 minutos entre o usuário / senha e obter um prompt - tudo isso enquanto é a atividade do disco.
Mais uma vez, não há troca, por isso não está trocando - é apenas surra porque não tem mais buffers.
Eu teria muito mais ou menos 100MB dedicados exclusivamente a buffers de disco, o que acionaria o killer OOM anteriormente (menos memória para programas, afinal de contas), mas por outro lado deixaria a máquina sempre responsiva.
Existe uma maneira de fazer isso? Eu não consegui encontrar uma entrada / proc / kernel ou / sys / vm que faz esse tipo de coisa.