oom_score_adj는 어떻게 사용합니까?


24

11.04에서을 /proc/[pid]포함 oom_score_adj하지만 man proc이전을 설명합니다 oom_adj. 이것을 사용하는 방법에 대한 정보를 얻지 못했습니다.

내가 준비해야 할 것은 'pbs'또는 'gridengine'으로 시작한 프로세스가 다른 것이 죽기 전에 종료된다는 것입니다. 어떻게해야합니까?


Upstart에서 관리하는 서비스에 대해이 변경 사항을 영구적으로 유지하려면 : 디먼에 대한 OOM 킬러 조정을 영구적으로 설정하는 방법? .
gertvdijk

이미 답입니다. 그것에 연결됩니다. :)
gertvdijk 2018 년

그러나이 사이트에 없습니다 :-)
bmargulies

답변:


13

비슷한 질문에 대한 유닉스 및 리눅스에 대한 내 Q & A 를 기반으로 합니다.

Stuart가 그의 대답 에서 아주 잘 지적했듯이 유효한 값은 -1000에서 1000 사이의 정수입니다 oom_score_adj. 값 이 낮을수록 사망 할 가능성이 줄어 듭니다.

응용 프로그램을 다시 시작한 후에이 값을 반복해서 변경해야하는 것은 매우 불편합니다. 프로세스가 종료 된 후에는 정보가 손실됩니다. Upstart (Ubuntu의 init 데몬)에는 데몬이 시작될 때마다 설정되도록 데몬을 구성 할 수있는 좋은 옵션이 있습니다.

oom score

[...] 저격 [...]

예:

# this application is a "resource hog"
oom score 1000

expect daemon
respawn
exec /usr/bin/leaky-app

따라서 기본적으로 /etc/init/myservice.conf변경하려는 서비스 의 구성 파일을 편집하여 행을 포함시킬 수 있습니다 oom score -1000. 귀하의 질문에서 말하는 'pbs'또는 'gridengine'서비스가 Upstart 가능 서비스라고 가정합니다. 그렇지 않으면 영구적으로 변경하는 다른 방법이 필요합니다.


7

oom-killer에 우선 순위를 지정할 프로세스를 생성하는 시작 스크립트를 수정할 수있는 경우 시작 스크립트에 다음을 추가하십시오.

echo 1000 > /proc/self/oom_score_adj

하위 프로세스에 대해 값이 상속됩니다.


6

oom_adj 또는 oom_score_adj에 대해 높은 (ish) 값을 설정하면 먼저 종료됩니다. 예 :

echo 15 > /proc/[pid]/oom_adj

oom_adj는 -16에서 15로갑니다. 위에서 언급했듯이 oom_score_adj는 -1000에서 1000을 허용합니다.


이렇게하려면 루트 여야합니다. sudo sh -c "echo -1000 > /proc/[PID]/oom_score_adj"
Adil

2
사실, 당신은 할 수 증가 에 대한 점수 당신의 루트 O ( "그래,이 움 - 사망 할 수있다") W / 프로세스를. 줄이면 (0 미만) 루트가 필요합니다.
Piskvor

5

코드를 조사하는 것은 항상 좋은 생각입니다. 일반적으로 kernel.org의 검색 기능을 사용하지만 현재는 작동하지 않습니다. Github도 잘 ​​작동합니다. 나는 이것을 찾았다:

대신 -1000 ~ +1000 범위의 새로운 튜너 블 / proc / pid / oom_score_adj가 추가되었습니다. 휴리스틱을 극화하여 특정 작업은 oom kill으로 간주되지 않고 다른 작업은 항상 고려 될 수 있습니다. 값이 badness () 점수에 직접 추가되므로 예를 들어 -500의 값은 시스템의 CPU, 메모리 카드 또는 CPU의 다른 작업과 비교할 때 메모리 소비의 50 %를 할인하거나 동일한 메모리 컨트롤러를 공유합니다.

에서 https://github.com/mirrors/linux-2.6/commit/a63d83f427fbce97a6cea0db2e64b0eb8435cd10#include/linux/oom.h


포인터에 감사하지만 누군가가 모든 문제를 해결하기 위해 레시피를 준비하기를 바라고 있습니다.이 값은 작업을 포크하기 전에 pbs의 exec 데몬에 대해이 값을 설정하는 것처럼 보입니다.
bmargulies

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.