Open todaygood opened 6 years ago
参见https://linux-mm.org/OOM
进程有oom方面的3个proc文件:
其中 oom_score 表示最终的分数,该分数越大,越可能被 Killer 杀掉。 而 oom_adj 是调整分数的,可以设置为负值,会对 oom_score减分
oom_adj 和oom_score_adj是类似的, 只是取值的范围不同,有换算公式
oom_adj = (task->signal->oom_score_adj * -OOM_DISABLE) / OOM_SCORE_ADJ_MAX; /* * /proc/<pid>/oom_score_adj set to OOM_SCORE_ADJ_MIN disables oom killing for * pid. */ #define OOM_SCORE_ADJ_MIN (-1000) #define OOM_SCORE_ADJ_MAX 1000 /* * /proc/<pid>/oom_adj set to -17 protects from the oom killer for legacy * purposes. */ #define OOM_DISABLE (-17) /* inclusive */ #define OOM_ADJUST_MIN (-16) #define OOM_ADJUST_MAX 15
从便利性角度, 我们应该使用oom_score_adj 这个值,便于记忆(-1000, 1000], 当等于-1000时,就是在发生oom时禁止杀死该进程。
代码取自 centos7 内核3.10.0 版本
参见https://linux-mm.org/OOM
进程有oom方面的3个proc文件:
其中 oom_score 表示最终的分数,该分数越大,越可能被 Killer 杀掉。 而 oom_adj 是调整分数的,可以设置为负值,会对 oom_score减分
oom_adj 和oom_score_adj是类似的, 只是取值的范围不同,有换算公式
从便利性角度, 我们应该使用oom_score_adj 这个值,便于记忆(-1000, 1000], 当等于-1000时,就是在发生oom时禁止杀死该进程。