recebe sinal antes que o processo esteja sendo eliminado pelo killer / cgroups da OOM

8

No nosso cluster, estamos restringindo nossos recursos de processos, por exemplo, memória ( memory.limit_in_bytes ).

Eu acho que, no final, isso também é tratado através do OOM killer no kernel do Linux (parece que ele está lendo o código-fonte ).

Existe alguma maneira de obter um sinal antes do meu processo ser morto? (Assim como a opção -notify para % de qsub do SGE, que enviará SIGUSR1 antes do processo é morto.)

Eu li sobre /dev/mem_notify aqui mas eu não tenho - há algo mais hoje em dia? Eu também li isso , que parece um pouco relevante.

Eu quero ser capaz de, pelo menos, despejar um pequeno rastreamento de pilha e talvez algumas outras informações de depuração úteis - mas talvez eu possa até mesmo recuperar libertando alguma memória.

Uma solução atualmente em uso é este pequeno script que freqüentemente verifica se estou perto (95%) do limite e, em caso afirmativo, envia o processo a SIGUSR1 . No Bash, estou iniciando este script em segundo plano ( cgroup-mem-limit-watcher.py & ) para que ele observe outros procs no mesmo cgroup e saia automaticamente quando o processo pai de Bash for interrompido.

    
por Albert 10.12.2014 / 15:44

2 respostas

4

É possível registrar uma notificação quando o uso de memória do cgroup ultrapassa um limite. Em princípio, definir o limite em um ponto adequado abaixo do limite real permitiria que você enviasse um sinal ou realizasse outra ação.

Veja:

link

    
por 31.10.2016 / 12:37
3

O OOM killer envia um SIGKILL, pois, caso contrário, seria contraproducente deixar o programa problemático a escolha de continuar.

Isso significa que não há absolutamente nenhuma maneira de um processo saber quando está prestes a ser morto por ele.

Gerenciar esses problemas geralmente implica fazer correções nos programas ou em sua configuração. Às vezes, dependendo da configuração do sistema, simplesmente aumentar o espaço de troca pode dar ao sistema operacional mais flexibilidade de gerenciamento de memória para evitar medidas drásticas.

    
por 26.08.2016 / 03:56