두 편의 글을 읽으면서https://lwn.net/Articles/391222/그리고http://man7.org/linux/man-pages/man5/proc.5.html나는 이러한 용어 oom_score
와 나쁜 것들을 접했습니다. 두 숫자 모두 동일한 기본 의미를 갖습니다. 숫자가 높을수록 호스트에 메모리가 부족할 때 관련 작업이 OOM에 의해 종료될 가능성이 높아집니다.
이 두 숫자 사이의 관계는 무엇입니까?
편집: 내 추측은 oom_score
= max(badness + oom_score_adj
, 0) 이지만 아직 증거를 찾지 못했습니다.
답변1
다음과 같습니다.
oom_score = 불량 * 1000 / 총 페이지 수
커널 코드 기반https://github.com/torvalds/linux/blob/master/fs/proc/base.c#L549.
static int proc_oom_score(struct seq_file *m, struct pid_namespace *ns,
struct pid *pid, struct task_struct *task)
{
unsigned long totalpages = totalram_pages + total_swap_pages;
unsigned long points = 0;
points = oom_badness(task, NULL, NULL, totalpages) *
1000 / totalpages;
seq_printf(m, "%lu\n", points);
return 0;
}