上周,一个用户应用程序占用了我的一台服务器。它逐渐耗尽了内存。当我尝试kill -9 PID
PID 时,它进入了state D
。虽然这正在消耗服务器的内存,并且它是迄今为止最耗内存的进程,但我决定尝试另一种方法 - 使用 OOM_Killer。因此,我将 PID 的值增加到oom_adj
15,然后oom_score
这个 PID 的值跳了起来。但是,OOM_Killer 没有任何动作。我有几个问题:
- 如果 SIGKILL 无法终止进程,OOM_Killer 是否会终止该进程?
- OOM_Killer 在多少可用内存下运行 (在可用内存小于 X 时执行)?它是否等到可用内存达到内核保留内存 (64KB IIRC)?
- 如何从 OOM_Killer 中受益,手动调用它或强制它更快地运行?
仅供参考 - 服务器是 Ubuntu 9.10,内核 2.6.31。谢谢!