Outra abordagem é desativar a supercomprometimento de memória.
To restore some semblance of sanity to your memory management:
- Disable the OOM Killer (Put
vm.oom-kill = 0
in /etc/sysctl.conf)- Disable memory overcommit (Put
vm.overcommit_memory = 2
in/etc/sysctl.conf
)These settings will make Linux behave in the traditional way (if a process requests more memory than is available
Note that this is a ternary value:malloc()
will fail and the process requesting the memory is expected to cope with that failure).
- 0 = "estimate if we have enough RAM"
- 1 = "Always say yes"
- 2 = "say no if we don't have the memory"
Isso forçará o aplicativo a lidar com a falta de memória, e possivelmente seus logs / coredump / etc. podem lhe dar algo útil.
UPDATE # 1
NOTA: Quando o seu sistema ficar sem memória, você não poderá gerar novos processos! Você pode ser bloqueado do sistema.