如果 SIGKILL 没有成功,OOM_Killer 还会成功吗?

如果 SIGKILL 没有成功,OOM_Killer 还会成功吗?

上周,一个用户应用程序占用了我的一台服务器。它逐渐耗尽了内存。当我尝试kill -9 PIDPID 时,它进入了state D。虽然这正在消耗服务器的内存,并且它是迄今为止最耗内存的进程,但我决定尝试另一种方法 - 使用 OOM_Killer。因此,我将 PID 的值增加到oom_adj15,然后oom_score这个 PID 的值跳了起来。但是,OOM​​_Killer 没有任何动作。我有几个问题:

  1. 如果 SIGKILL 无法终止进程,OOM_Killer 是否会终止该进程?
  2. OOM_Killer 在多少可用内存下运行 (在可用内存小于 X 时执行)?它是否等到可用内存达到内核保留内存 (64KB IIRC)?
  3. 如何从 OOM_Killer 中受益,手动调用它或强制它更快地运行?

仅供参考 - 服务器是 Ubuntu 9.10,内核 2.6.31。谢谢!

相关内容