O que aconteceria se a quantidade de memória livre (vm.min_free_kbytes) fosse muito baixa?

2

Me deparei com o seguinte parâmetro nas configurações do kernel (em sysctl):

vm.min_free_kbytes

Esta é a quantidade de memória livre (RAM) que é sempre livre, não importa o quê. No meu caso, eu tenho apenas 1 GiB de RAM e esse parâmetro foi configurado para cerca de 64 MiB. Eu pensei que é muito alto, então baixei para 8MiB até agora. Eu não sei se posso diminuir ainda mais, ou se baixá-lo para 8MiB pode causar algum problema, então a questão é o que aconteceria se a quantidade de memória livre fosse muito baixa? Posso baixar com segurança o valor para 1 MiB?

    
por Mikhail Morfikov 08.05.2014 / 22:29

1 resposta

6

Deve ser seguro, mas não pode garantir isso. A partir dos documentos do kernel:

min_free_kbytes:

This is used to force the Linux VM to keep a minimum number
of kilobytes free.  The VM uses this number to compute a
watermark[WMARK_MIN] value for each lowmem zone in the system.
Each lowmem zone gets a number of reserved free pages based
proportionally on its size.

Some minimal amount of memory is needed to satisfy PF_MEMALLOC
allocations; if you set this to lower than 1024KB, your system will
become subtly broken, and prone to deadlock under high loads.

Setting this too high will OOM your machine instantly.

Essencialmente, se você configurá-lo para baixo, você terá problemas com a alocação de memória.

    
por 08.05.2014 / 22:47