23 lines
1.1 KiB
Plaintext
23 lines
1.1 KiB
Plaintext
|
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
|
||
|
decrease the badness() score linearly. This interface will replace
|
||
|
/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.
|