4

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

4

1 回答 1

8

除非您特别设置它,否则它将默认为其派生出的进程的值。某些进程,例如openssh,会显式更改其可执行文件中的值。openssh 的理由是,当您处于内存不足的情况时,您希望能够通过 ssh 进入计算机并杀死一些进程。对于其他可执行文件设置不同值的原因,您必须询问他们的个人开发人员。

因为进程从它们的父进程继承了 oom 设置,所以如果你从 ssh 会话启动某些东西,它将默认为 -17。这就是为什么某些流程可能看起来非常重要的原因。但是,请记住,计算机的存在是为了为其用户运行进程。如果我正在写一篇重要的论文并且内存开始变少,那么那台机器上最重要的进程就是运行我的文字处理器的那个。oom 设置存在的全部原因是能够将这种重要性传达给操作系统。

于 2012-09-19T03:59:46.500 回答