Configurando / proc / sys / vm / overcommit_memory para 1 e, em seguida, esgotando endereços

1

Pelo que entendi, a configuração de / proc / sys / vm / overcommit_memory para 1 deve garantir que o malloc sempre tenha sucesso e definir o killer da OOM se houver um problema de memória real.

Eu estou querendo saber o que acontece quando você tem tanta memória que você esgotou o espaço de endereço para o seu processo? Ele retorna NULL apesar da configuração overcommit_memory ou seu processo recebe um sinal? Ou algo completamente diferente?

    
por Michael Lucy 04.08.2011 / 03:57

1 resposta

1

Malloc deve retornar NULL e definir errno se segmento de dados acabar (mesmo com overcommit ativado).

Veja o manual de chamada do sistema brk (2) . Malloc chama brk para estender o segmento de dados. brk falha e configura errno para ENOMEM se a extensão do segmento falhar por qualquer motivo.

    
por 04.08.2011 / 07:09