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.