Defina o ajuste killer da OOM para o processo na inicialização?

4

Existe uma maneira de definir o valor de ajuste do assassino da OOM quando um processo de daemon (Apache no meu caso) é iniciado? Eu gostaria de dar ao Apache uma probabilidade maior de ser morto e tornar praticamente impossível que alguns serviços mais vitais sejam apostados pelo assassino da OOM.

BTW: se alguém pudesse criar uma tag para oom ou oom-killer, seria legal.

    
por 0xC0000022L 29.06.2011 / 21:07

2 respostas

4

Acho que a melhor opção seria adicionar um script separado como parte do seu init.d. Nele, você vai querer fazer algo parecido com isto

echo 15 > /proc/'pidof APP_NAME'/oom_adj

O pidof APP_NAME recuperará o ID do processo do aplicativo com esse nome. Escrever 15 para / proc / {pid} / oom_adj aumenta a "maldade" do processo {pid}, fazendo com que seja mais provável que seja morto por um assassino da OOM.

O artigo Domar o assassino de OOM do LWN.net também sugere algumas outras ideias que foram sugeridas para permitir a especificação de um "oom_victim", mas não tenho certeza se algum deles está realmente no kernel.

BTW: A melhor solução seria evitar ter que usar o OOM Killer em primeiro lugar. Lembre-se do lema não escrito da Micro $ oft: não há problema que mais RAM não consiga consertar.

[Nota: Se pode haver mais de um desses processos, você pode querer rever o código um pouco.]

    
por jwernerny 30.06.2011 / 15:46
0

Para o Ubuntu 15.04, isso mudou.

A maneira correta de configurar o oom para um pid é

echo 42 > /proc/666/oom_score_adj

em vez de /proc/666/oom_adj

    
por user2599522 04.05.2016 / 12:46