Last week an user application turns out to hog one of my servers. It was exhausting the memory gradually and slowly. When I attempted to
kill -9 PID the PID went in
state D. While this was eating the server's memory and it was by far the most memory-hungry process, I decided to try alternative approach - using OOM_Killer. So, I increased
oom_adj to 15 and the
oom_score of this PID jumped up. However, no action from the OOM_Killer.
I have few questions:
- Would OOM_Killer kill a process if SIGKILL couldn't?;
- At what amount of available memory the OOM_Killer runs (at what point of available memory less than X it executes)? Does it wait until the available memory reaches the kernel reserved one (64KB IIRC)?;
- How to benefit from OOM_Killer, invoking it manually or forcing it to run sooner?
Just for the record - the server is Ubuntu 9.10, kernel 2.6.31. Thank you!