Desabilita a troca de páginas readonly etc. no linux?

0

Existe alguma maneira de impedir que o Linux troque qualquer coisa , mas vá direto ao killer da OOM se ele ficar sem RAM física?

Plano de fundo

Eu tenho uma estação de trabalho Linux que, de vez em quando, fica sem memória RAM. Quando isso acontece, torna-se irrecuperável. (Isso é verdade, independentemente de o swap estar ativado ou não, eu já vi isso acontecer nos dois sentidos.)

O que eu quero que aconteça nesse caso é fazer com que o OOM killer comece a matar processos e continue fazendo isso até que o sistema se recupere ou trave (qualquer coisa entre eles é preferível a um desligamento indefinido). Curiosamente, mesmo com o swap desabilitado isso não acontece, mas o sistema dá indicações de que ele está trocando (o material funciona, apenas ordens de magnitude mais lentamente).

Minha teoria atual é que o Linux ainda está trocando dados que considera serem suportados pelo disco, por exemplo. páginas somente leitura de arquivos executáveis e mmap'ed.

Nota: Eu já gastei algum esforço e exaurei várias técnicas para limitar o uso da memória. Eu não posso fazer muito mais do que isso sem prejudicar a operação normal. Eu realmente estou procurando por uma solução "mate todos e deixe o usuário resolvê-lo".

    
por BCS 07.11.2014 / 16:39

1 resposta

0

Eu não sei se isso funciona em todas as distribuições do Linux.

Torne o processo menos provável de ser eliminado. nnn = pid

echo -15 > /proc/nnn/oom_adj

Podemos tornar o assassino de OOM mais propenso a matar o processo nnn fazendo o seguinte.

echo 10 > /proc/nnn/oom_adj

No entanto,

Isso não parece uma ótima solução para mim. Eu faria algo sobre limitar recursos em processos antes de considerar esse tipo de coisa. O ulimit está lá exatamente por esse motivo. Isso não invalida sua abordagem atual se você já fez isso. Mas isso responde à pergunta, eu acho. Isso exigiria que você:

monitore as coisas e tome medidas para ativar o kill off

use esta abordagem matar a priori se você "sabe" que pode viver sem algo. O que levanta a questão - por que esse processo está em andamento se você pode viver sem ele?

    
por 08.11.2014 / 02:42