Memória de supercomprometimento do Linux

11

Eu estive procurando por overcommitting de memória no Linux usando /proc/sys/vm/overcommit_memory e li alguns artigos que não dizem a mesma coisa.

Este documento , sob o título "Indo na direção errada ", continua," valores 1: supercomprometido e 0 (padrão): não ", mas nas próximas linhas, ele menciona, entre coisas semelhantes, que isso não é verdade e que 0 significa "adivinhar quanto comprometimento excessivo é razoável". Isso significa que a supercomprometimento de memória não é desabilitada usando o valor 0, certo?

Ele também diz que 1 indica "nunca recusar qualquer malloc ()", com 2 significando "ser preciso sobre o overcommit - nunca comprometer um espaço de endereço virtual maior que o espaço de troca mais uma fração overcommit_ratio da memória física". p>

A revista Red Hat , por outro lado, afirma: "se o valor for 0, então o kernel verifica se há memória livre suficiente para conceder um pedido de memória a uma chamada malloc de um aplicativo.Se houver memória suficiente, o pedido será concedido, caso contrário, ele será negado e um código de erro será retornado para o aplicativo. aplicação." Isso soa exatamente como desativar a supercomprometimento.

"Se o valor é definido como 1, o kernel concede alocações acima da quantidade de RAM física e troca no sistema conforme definido pelo valor overcommit_ratio .... Se a configuração neste arquivo for 2, o kernel permite todas as alocações de memória, independentemente do estado atual de alocação de memória. " Em termos de valores 1 e 2, isso é o oposto do que o documento anterior disse, certo?

Alguém sabe o que é realmente correto e se é possível "desabilitar" a supercomprometimento?

    
por Doddy 17.10.2010 / 17:21

1 resposta

8
A revista Red Hat tinha 1 e 2 invertidos. Cuidado com os bugs que podem impedir a desativação da supercomprometimento como: link

    
por 18.10.2010 / 01:25