本身,如何配置Linux来调用 oom_kill

分享于 

3分钟阅读

电脑

  繁體 雙語

问题:

我不希望我的电脑交换数据到磁盘。 我没有交换分区:






$ free


 total used free shared buffers cached


Mem: 3841912 3670012 171900 0 74980 699652


-/+ buffers/cache: 2895380 946532


Swap: 0 0 0




回到( 可能与内核 2.4最近一样) 曾经工作的那一天。 内存饥饿的进程会被oom杀死,我会重启它们。 但现在( Linux 2.6.38 -8 -generic #42-Ubuntu SMP Apr 11: 31:: 24 UTC 2011 ) google ( 13.0.782.24 测试版) 定期将我的机器送进了死亡螺旋。 或者至少有些感觉像交换: 更新,更新,gnome面板内存图表,在syslog中看到这里消息:






rtkit-daemon[1771]: The canary thread is apparently starving. Taking action.


rtkit-daemon[1771]: Demoting known real-time threads.


...




但是,根据 syslog,内核不运行,杀手。 为了获得良好的度量,我将swappiness设置为 0:






$ cat/proc/sys/vm/swappiness


0




我的解决方法是在开始时使用 ctrl-alt-sysrq-f。 在这种情况下,任何人都有配置Linux来独立运行oom_kill的诀窍?


回答 1:

OOM不一定杀死你认为将会发生的进程。 在这里阅读:http://lwn.net/Articles/317814/

我怀疑,因为 Chrome 对每个页面使用了不同的进程,所以对杀手和其他进程的启发是混乱的,而不是父进程的进程。

根据的说法 oom killer喜欢杀死进程。 所以尝试将 Chrome 设置为 GREATER的友好度,而不是 0. 可能会使它成为一个目标:- )


回答 2:

我已经得出结论,现代linux不希望在没有虚拟内存的情况下运行。 或者许在慢硬驱动/旧虚拟机算法/等等 或者你可以能跳过某些步骤来配置。时,可能会有意义。

但是在过去的几个月里,我运行了一个交换文件,对于我的机器行为来说我非常高兴。 它在限制下减慢了一点,但是很容易干预和杀死内存的过程,从而回到轨道上。



CAL  调用  
相关文章