我正在尝试理解Linux系统(准确地说,是Fedora15/16)的进程的oom_adj的默认值。我看到的是一堆进程被设置为-17,也就是说,不要杀死,而其他进程则有不同的值(通常是0,有时是-13)。与直觉相反的是,用户进程似乎比系统进程多使用-17。有人能说明这一点吗?我是不是遗漏了某个配置文件?谢谢!
发布于 2012-09-19 11:59:47
除非您专门设置它,否则它将默认为派生它的进程的值。一些进程,如openssh,会显式地更改其可执行文件中的值。openssh的合理性在于,当您处于内存不足的情况下时,您希望能够通过ssh进入计算机并杀死一些进程。对于其他可执行文件以不同方式设置其值的原因,您必须询问各自的开发人员。
因为进程从它们的父进程继承了oom设置,所以如果从ssh会话启动一些东西,它将缺省为-17。这就是为什么有些过程看起来不合理的重要。但是,请记住,计算机的存在是为了为其用户运行进程。如果我正在写一篇重要的论文,而内存开始耗尽,那么这台机器上最重要的进程就是运行我的字处理器的那个进程。oom设置存在的全部原因是能够将这种重要性传达给操作系统。
https://stackoverflow.com/questions/12219423
复制相似问题