core dumps para falta de memória no linux

2

Como criar despejos de memória para falta de memória.

Se o sistema está sem memória, então o oom-killer mata o processo que ocupa a maior quantidade de memória por alguns cálculos.

Como podemos obter o core dump do processo morto

    
por Sasikiran 26.08.2016 / 22:38

2 respostas

3

Mesmo que seu kernel tenha sido configurado para gerar um dump principal, o killer da OOM não causaria a produção de um core dump porque ele envia um SIGKILL.

Como descrito na página man do sinal (7) , o SIGKILL não produz um despejo de núcleo.

A única maneira de alterar esse comportamento exigiria, portanto, um patch personalizado para o kernel.

    
por 26.08.2016 / 22:47
0
Configured vm.panic_on_oom=2 in /etc/sysctl.conf, which solves my problem.

**

  • panic_on_oom

**

Isso habilita ou desabilita o recurso de falta de memória do pânico.

Se isto for definido como 0, o kernel irá matar algum processo invasor, chamado oom_killer. Normalmente, o oom_killer pode matar processos desonestos e o sistema sobreviverá.

Se isto for definido como 1, o kernel entra em pane quando a falta de memória acontece. No entanto, se um processo limitar o uso de nós por mempolicy / cpusets, e esses nós se tornam status de exaustão de memória, um processo pode ser morto por um assassino. Nenhum pânico ocorre neste caso. Porque a memória de outros nós pode estar livre. Isso significa que o status total do sistema pode não ser fatal ainda.

Se isto for definido como 2, o kernel entra em pânico compulsoriamente mencionado acima. Mesmo oom acontece na memória do cgroup, o todo pânico do sistema.

O valor padrão é 0. 1 e 2 são para failover de cluster. Por favor, selecione de acordo com sua política de failover. panic_on_oom = 2 + kdump lhe dá uma ferramenta muito strong para investigar porque oom acontece. Você pode obter um instantâneo.

link

    
por 28.08.2016 / 16:42