Unix의 OOM Killer에서 사용자 제외

Unix의 OOM Killer에서 사용자 제외

Unix Out of Memory Killer에서 특정 사용자를 제외하는 방법이 있습니까? 반면에 사용자에 대한 우선순위를 설정할 수 있나요?

답변1

OOM은 특정 사용자 프로세스를 무시하도록 지시할 수 없습니다. 특정 프로세스를 무시하고 특정 사용자에 대한 모든 프로세스를 확인하고 cron 또는 원하는 것을 통해 업데이트하는 루프를 구축하도록 지시할 수 있습니다. 루프 자체는 다음과 같습니다.

while read r_pid ; do 
    echo -16 | sudo tee /proc/$r_pid/oom_adj ; 
done < <(pgrep -U Yoki)

이를 스크립트로 래핑하고 매분 또는 원하는 간격으로 실행되도록 예약할 수 있습니다.

또는 OOM을 완전히 비활성화할 수 있습니다.

sysctl vm.overcommit_memory=2
echo "vm.overcommit_memory=2" >> /etc/sysctl.conf

이 접근 방식은 커널 패닉이나 시스템 정지와 같은 예기치 않은 동작을 일으킬 수 있으므로 전혀 권장되지 않습니다.

관련 정보