Você não deve confiar no OOM killer para gerenciar seus processos. O killer da OOM é uma medida de último recurso, quando a única outra alternativa é uma falha no sistema. Por exemplo. todas as memórias de cache e de buffers de disco foram liberadas e confirmadas, tudo que pode ser descartado / descartado é processado e você ainda não tem memória suficiente ... Obviamente, você não quer que seu sistema em execução chegue a esse estado.
Por causa das restritas restrições que o OOM killer opera (não pode alocar mais memória, não pode trocar em outros processos, etc.), irá matar processos que você não quer que sejam mortos para aliviar pressão de memória.
Acho que, se o seu sistema não tiver memória suficiente, você precisará adicionar mais memória ou trocar espaço, dependendo se estiver ficando sem memória física ou memória virtual total.
Se, por outro lado, você tem alguns processos descontrolados que consomem muita memória de tempos em tempos, devido a um vazamento de memória ou algum outro bug, você pode controlar isso por outros meios:
-
Defina
ulimit -m
antes de iniciar o processo problemático e limite a quantidade de memória que o processo pode alocar. -
Reinicie o processo ofensivo normalmente em um cronograma via cron, se houver um vazamento de memória e seja razoavelmente previsível.
Em qualquer caso, o assassino da OOM não é seu amigo, é um canhão solto: - /