Linux的OOM killer中默认的oom_adj值是多少?

4

我试图理解Linux系统(确切地说是Fedora 15/16)进程的oom_adj默认值。我看到有一堆进程被设置为-17,即不杀死,而其他进程有不同的值(通常为0,有时为-13)。有点违反直觉的是,似乎用户进程比系统进程更多地使用了-17。有人能解释一下吗?我是否遗漏了某个配置文件?谢谢!

1个回答

9

除非您明确设置,否则它将默认为从中派生的进程的值。一些进程(例如openssh)在其可执行文件中明确更改该值。 openssh 的理由是,当您处于低内存条件时,您希望能够通过 ssh 连接到计算机并杀死一些进程。至于其他可执行文件设置其值不同的原因,您必须询问它们各自的开发人员。

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


1
重点争议应该是像键盘这样的东西至少同样重要。 - Joran Beasley

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接