【发布时间】:2012-08-26 12:17:45
【问题描述】:
我正在尝试了解 Linux 系统(准确地说是 Fedora 15/16)进程的 oom_adj 的默认值。我所看到的是一堆进程设置为-17,即不杀,而其他进程具有不同的值(通常为0,有时为-13)。有点违反直觉,看起来用户进程使用 -17 比系统进程多。任何人都可以阐明这一点吗?我在某处缺少配置文件吗?谢谢!
【问题讨论】:
标签: linux out-of-memory
我正在尝试了解 Linux 系统(准确地说是 Fedora 15/16)进程的 oom_adj 的默认值。我所看到的是一堆进程设置为-17,即不杀,而其他进程具有不同的值(通常为0,有时为-13)。有点违反直觉,看起来用户进程使用 -17 比系统进程多。任何人都可以阐明这一点吗?我在某处缺少配置文件吗?谢谢!
【问题讨论】:
标签: linux out-of-memory
除非您特别设置它,否则它将默认为其派生的进程的值。某些进程,例如openssh,会显式更改其可执行文件中的值。 openssh 的理由是,当您处于内存不足的情况时,您希望能够通过 ssh 进入计算机并杀死一些进程。对于其他可执行文件设置不同值背后的原因,您必须询问他们各自的开发人员。
因为进程从其父进程继承 oom 设置,所以如果您从 ssh 会话启动某些内容,它将默认为 -17。这就是为什么某些流程可能看起来非常重要的原因。但是,请记住,计算机的存在是为了为其用户运行进程。如果我正在写一篇重要的论文并且内存开始变少,那一刻机器上最重要的进程就是运行我的文字处理器的进程。 oom 设置存在的全部原因是能够将这种重要性传达给操作系统。
【讨论】: