As configurações de vm.overcommit_*
controlam a alocação de memória do espaço do usuário. Eles não têm efeito na memória que o kernel pode alocar.
Além disso, o valor que você está recebendo 50% é de memória física + troca. 47 + 47 = 94. Então o userspace pode alocar até 47gb.
Sua saída free
mostra que você tem 1gb usado pelo userspace e 45gb usado pelo kernel para fazer o cache. O espaço do usuário de 1 gb está bem abaixo de 50% de 94 gb.
Correção adicional:
vm.overcommit_memory = 2
will not allow to overcommit memory than 50 % of RAM
Esta configuração não permite a supercomprometimento em todos . Combinado com vm.overcommit_ratio=50
, ele permitirá que o espaço do usuário confirme até 50% da memória total. "commit"!="overcommit"