Linux的OOM杀手中的默认oom_adj值

Chr*_*ian 4 linux out-of-memory

我试图理解oom_adj的默认值为Linux系统的进程(确切地说是Fedora 15/16).我所看到的是,一堆进程设置为-17,即不杀,而其他进程具有不同的值(通常为0,有时为-13).有点违反直觉,看起来用户进程比系统进程多使用-17.任何人都可以阐明这一点吗?我错过了某处的配置文件吗?谢谢!

Kar*_*ldt 8

除非您专门设置它,否则它将默认为它所分叉的进程的值.某些进程(如openssh)显式更改其可执行文件中的值.openssh的理性之处在于,当你处于低内存状态时,你希望能够进入计算机并杀死一些进程.由于其他可执行文件背后的原因设置不同的值,您必须询问他们各自的开发人员.

因为进程从父进程继承oom设置,所以如果从ssh会话启动某些东西,它将默认为-17.这就是为什么某些流程似乎不合理的重要原因.但是,请记住,存在用于为其用户运行进程的计算机.如果我正在处理一篇重要的论文并且内存开始变低,那时该机器上最重要的进程是运行我的文字处理器的进程.oom设置存在的全部原因是能够将这种重要性传达给操作系统.