추가 읽기

추가 읽기

echo 1000 >/proc/<pid>/oom_score_adj대상 프로그램이 이미 실행 중이므로 직접 설정을 신뢰할 수 없습니다. 이 경우 대상 프로그램이 이전에 OOM을 발생시켰을 수 있습니다.echo 1000 >/proc/<pid>/oom_score_adj

답변1

oom_score_adj포크에서 상속되므로 상위 프로세스에서 원하는 값을 설정하여 새 하위 프로세스의 초기 값을 설정할 수 있습니다.

따라서 쉘 스크립트에서 대상을 시작하면

echo 1000 > /proc/$$/oom_score_adj

셸의 값을 1000으로 변경하고 셸에서 분기된 모든 후속 프로세스는 oom_score_adj1000으로 설정된 값으로 시작됩니다.

답변2

M. Kitt의 답변에서 볼 수 있듯이 상위 프로세스에 설정하는 대신 자체적으로 설정을 적용하는 체인 로딩 도구를 통해 하위 프로세스에서 프로그램을 실행하여 분기 후 하위 프로세스에 설정할 수 있습니다. 그런 다음 간단히 대상 프로그램을 체인로드합니다.

저는 2016년에 Linux 운영 체제와 FreeBSD/TrueOS의 메커니즘을 이해하는 nosh 도구 세트를 위해 이러한 유틸리티를 작성했습니다.

oom-kill-protect -- 1000대상 프로그램의 일부 매개변수

--이는 누군가가 음수 OOM 점수를 사용하도록 조정하기로 결정한 경우에 발생합니다. ☺

추가 읽기

관련 정보