2010-11-12 06:05:18 +08:00
|
|
|
What: /proc/<pid>/oom_adj
|
|
|
|
When: August 2012
|
|
|
|
Why: /proc/<pid>/oom_adj allows userspace to influence the oom killer's
|
|
|
|
badness heuristic used to determine which task to kill when the kernel
|
|
|
|
is out of memory.
|
|
|
|
|
|
|
|
The badness heuristic has since been rewritten since the introduction of
|
|
|
|
this tunable such that its meaning is deprecated. The value was
|
|
|
|
implemented as a bitshift on a score generated by the badness()
|
|
|
|
function that did not have any precise units of measure. With the
|
|
|
|
rewrite, the score is given as a proportion of available memory to the
|
|
|
|
task allocating pages, so using a bitshift which grows the score
|
|
|
|
exponentially is, thus, impossible to tune with fine granularity.
|
|
|
|
|
|
|
|
A much more powerful interface, /proc/<pid>/oom_score_adj, was
|
|
|
|
introduced with the oom killer rewrite that allows users to increase or
|
2011-07-26 08:12:17 +08:00
|
|
|
decrease the badness score linearly. This interface will replace
|
2010-11-12 06:05:18 +08:00
|
|
|
/proc/<pid>/oom_adj.
|
|
|
|
|
|
|
|
A warning will be emitted to the kernel log if an application uses this
|
|
|
|
deprecated interface. After it is printed once, future warnings will be
|
|
|
|
suppressed until the kernel is rebooted.
|