我试图了解Linux系统进程的oom_adj的默认值(确切地说是Fedora 15/16)。我所看到的是,一堆进程设置为-17,即不杀,而其他进程有不同的值(通常为0,有时为-13)。有点违反直觉,看起来用户进程比系统进程多使用-17。任何人都可以阐明这一点吗?我错过了某处的配置文件吗?谢谢!
答案 0 :(得分:7)
除非您专门设置它,否则它将默认为分叉的进程的值。某些进程(如openssh)显式更改其可执行文件中的值。 openssh的理性之处在于,当你处于低内存状态时,你希望能够进入计算机并杀死一些进程。由于其他可执行文件背后的原因设置不同的值,您必须询问他们各自的开发人员。
因为进程从父进程继承了oom设置,所以如果从ssh会话启动某些东西,它将默认为-17。这就是为什么某些流程似乎不合理的重要原因。但是,请记住,存在用于为其用户运行进程的计算机。如果我正在处理一篇重要的论文并且内存开始变低,那时该机器上最重要的进程是运行我的文字处理器的进程。 oom设置存在的全部原因是能够将这种重要性传达给操作系统。