gat*_*ado 28 linux memory out-of-memory linux-kernel
有没有办法让OOM杀手工作并阻止Linux冻结?我一直在运行Java和C#应用程序,其中通常使用分配的任何内存,并且(如果我正确理解它们)过度使用会导致计算机冻结.现在,作为临时解决方案,我补充道,
vm.overcommit_memory = 2
vm.overcommit_ratio = 10
Run Code Online (Sandbox Code Playgroud)
到/etc/sysctl.conf.
对任何能够解释为什么现有OOM杀手无法以保证方式正常运行的人都感到荣幸,只要内核耗尽"真实"内存就终止进程.
编辑 - 许多回应都与迈克尔的反应一致"如果你遇到与OOM杀手相关的问题,那么你可能需要修复任何导致你内存不足的问题".我不认为这是正确的解决方案.总会有应用程序出现错误,我想调整内核,这样我的整个系统就不会冻结.鉴于我目前的技术理解,这似乎不应该是不可能的.
如果您的进程的 oom_adj 设置为 -17,则不会考虑杀死它,但我怀疑这是这里的问题。
cat /proc/<pid>/oom_adj
会告诉您进程的 oom_adj 值。