13.3. 以内存不足状态时终止进程以终止

您可以对通过 oom_killer 功能终止的进程排列。这样可保证高优先级进程在 OOM 状态保持运行。每个进程都有一个目录 /proc/PID。每个目录都包括以下文件:

  • oom_adj - oom_adj 有效的分数位于 -16 到 +15 范围。这个值用于计算进程的性能占用空间,使用一种算法来考虑进程运行的时间(其他因素除外)。
  • oom_score - 包含使用 oom_adj 中的值计算的算法结果。

在内存不足状态中,oom_killer 功能以最高的 oom_score 终止进程。

您可以通过编辑进程的 oom_adj 文件来排列要终止的进程。

先决条件

  • 知道您要优先排序的进程的进程 ID(PID)。

流程

  1. 显示一个进程的当前 oom_score

    # cat /proc/12465/oom_score
    79872
  2. 显示进程的 oom_adj 的内容。

    # cat /proc/12465/oom_adj
    13
  3. 编辑 oom_adj 的值。

    # echo -5 > /proc/12465/oom_adj

验证步骤

  1. 显示进程的当前 oom_score

    # cat /proc/12465/oom_score
    78
  2. 验证显示的值是否小于前面的值。