Provided by: manpages_6.9.1-1_all bug

NAME

       /proc/pid/oom_score_adj - OOM-killer score adjustment

DESCRIPTION

       /proc/pid/oom_score_adj (since Linux 2.6.36)
              This  file can be used to adjust the badness heuristic used to select which process
              gets killed in out-of-memory conditions.

              The badness heuristic assigns a value to each candidate task ranging from 0  (never
              kill)  to 1000 (always kill) to determine which process is targeted.  The units are
              roughly a proportion along that range of allowed memory the  process  may  allocate
              from, based on an estimation of its current memory and swap use.  For example, if a
              task is using all allowed memory, its badness score will be 1000.  If it  is  using
              half of its allowed memory, its score will be 500.

              There  is  an  additional  factor included in the badness score: root processes are
              given 3% extra memory over other tasks.

              The amount of "allowed" memory depends on the context in which the  OOM-killer  was
              called.   If it is due to the memory assigned to the allocating task's cpuset being
              exhausted, the allowed memory represents the set of mems assigned  to  that  cpuset
              (see  cpuset(7)).   If  it  is  due  to  a mempolicy's node(s) being exhausted, the
              allowed memory represents the set of mempolicy nodes.  If it is  due  to  a  memory
              limit  (or  swap limit) being reached, the allowed memory is that configured limit.
              Finally, if it is due to the entire system being out of memory, the allowed  memory
              represents all allocatable resources.

              The  value  of  oom_score_adj  is  added  to the badness score before it is used to
              determine   which   task   to   kill.    Acceptable   values   range   from   -1000
              (OOM_SCORE_ADJ_MIN)  to  +1000  (OOM_SCORE_ADJ_MAX).   This  allows  user  space to
              control the preference for OOM-killing, ranging from always  preferring  a  certain
              task  or  completely  disabling  it  from  OOM-killing.  The lowest possible value,
              -1000, is equivalent to disabling OOM-killing entirely for that task, since it will
              always report a badness score of 0.

              Consequently,  it  is  very simple for user space to define the amount of memory to
              consider for each task.  Setting an oom_score_adj value of +500,  for  example,  is
              roughly  equivalent  to  allowing  the  remainder of tasks sharing the same system,
              cpuset, mempolicy, or memory controller resources to use at least 50% more  memory.
              A  value of -500, on the other hand, would be roughly equivalent to discounting 50%
              of the task's allowed memory from being considered as scoring against the task.

              For backward compatibility with previous kernels, /proc/pid/oom_adj  can  still  be
              used to tune the badness score.  Its value is scaled linearly with oom_score_adj.

              Writing  to /proc/pid/oom_score_adj or /proc/pid/oom_adj will change the other with
              its scaled value.

              The  choom(1)  program  provides  a  command-line  interface  for   adjusting   the
              oom_score_adj value of a running process or a newly executed command.

HISTORY

       /proc/pid/oom_adj (since Linux 2.6.11)
              This  file  can  be used to adjust the score used to select which process should be
              killed in an out-of-memory (OOM) situation.  The kernel uses this value for a  bit-
              shift operation of the process's oom_score value: valid values are in the range -16
              to +15, plus the special value -17, which disables OOM-killing altogether for  this
              process.  A positive score increases the likelihood of this process being killed by
              the OOM-killer; a negative score decreases the likelihood.

              The default value for this file is 0; a new process inherits its  parent's  oom_adj
              setting.   A  process  must  be  privileged (CAP_SYS_RESOURCE) to update this file,
              although a process can  always  increase  its  own  oom_adj  setting  (since  Linux
              2.6.20).

              Since   Linux   2.6.36,   use   of   this   file   is   deprecated   in   favor  of
              /proc/pid/oom_score_adj, and finally removed in Linux 3.7.

SEE ALSO

       proc(5), proc_pid_oom_score(5)