Eu tenho uma máquina Linux bastante antiga com 2 GB de RAM, sem troca, e está funcionando muito bem, com o sistema usando todas as partes de memória não utilizadas para fazer cache com grande efeito.
No entanto, quando estou quase estressando a memória (por exemplo,> 1950 MB alocados), ela fica lenta; Eu suspeito que é porque não há buffers de disco restantes. Eu sei que o assassino da OOM logo entraria em vigor, mas geralmente não chega lá - está ficando tão lento que as cargas disparam para 30-40, nenhum processo progride (portanto, não aloca mais memória) e Eu tenho que reiniciar.
Quando tento simplesmente matar um processo para fazer com que a máquina responda, por exemplo, indo ao console (via Alt-F1, efetuando login e apenas executando um "processo ruim de killall"), geralmente funciona, exceto que tenho que esperar ~ 10 minutos entre usuário / senha e obter um prompt - enquanto houver atividade no disco.
Mais uma vez, não há troca, por isso não está trocando - é simplesmente emocionante porque não há buffers restantes.
Eu teria mais ou menos 100 MB dedicados exclusivamente aos buffers de disco, o que acionaria o killer do OOM mais cedo (afinal, menos memória para programas), mas, por outro lado, deixaria a máquina sempre responsiva.
Existe uma maneira de fazer isso? Não consegui encontrar uma entrada / proc / kernel ou / sys / vm que faça esse tipo de coisa.