No processo de otimização do sistema Android, a configuração do valor ‘swappiness’ é crucial. O caminho do valor é /proc/sys/vm/swappiness
. Algumas fontes sugerem defini-lo para 60, enquanto outras recomendam defini-lo para 120. Algumas fontes afirmam que seu valor máximo é 100, enquanto outras afirmam que é 200, o que me confunde.
Como posso confirmar o valor máximo suportado no meu sistema?
Links que posso encontrar no Stack Overflow:
O valor máximo
swappiness
é 100 na versão do kernel anterior à 5.8, e esse valor foi aumentado para 200 no kernel 5.8 .Se você ler atentamente as respostas no seu link (e há muitas outras perguntas e artigos semelhantes encontrados no Google), verá que nenhum deles oferece o melhor valor. Depende da carga de trabalho exata e de seu comportamento específico na máquina em que você está executando o sistema operacional e requer apenas alguns benchmarking.
Normalmente o valor padrão (60) é o mais equilibrado.
Embora a resposta no seu link explique como
swappiness
afeta o sistema, tentarei torná-lo mais simples, sem os cálculos e os números que outros acrescentam às suas respostas que as tornam mais precisas, mas talvez um pouco mais difíceis de ler.Se você quiser a essência de uma maneira extremamente simplificada (apenas para torná-la mais intuitiva), você poderia dizer que sua RAM contém dois tipos principais de páginas:
Quando há muita pressão de memória e o kernel precisa liberar espaço na RAM, ele enfrenta uma decisão difícil:
Isso
swappiness
é o que indica ao kernel o que ele deve preferir. Um valor "0" diz ao kernel para evitar a troca de páginas anon tanto quanto possível e para sempre limpar a memória/cache de arquivo para liberar mais espaço. Quanto mais você aumenta, maiores são as chances de sua memória imediata ser trocada e a memória com suporte de arquivo ser favorecida. Em kernels > 5.8, um valor de 200 significa que deve sempre preferir trocar páginas anon e manter a memória de backup de arquivo na RAM.É por isso que o valor recomendado depende de muitos fatores diferentes , como o tipo de carga de trabalho, a velocidade de E/S e a velocidade de troca.
swappiness
possível redução de E/S, se seus processos tiverem muitas páginas de memória inativas que provavelmente não usarão.zswap
, onde a troca é compactada e armazenada em uma seção dedicada na RAM (em vez do disco), o custo da troca é ainda menor, então talvez seja bom preferir a troca em vez da limpeza dos dados do arquivo da RAM.Mas o resultado final é: não existe um valor geral recomendado . Para o caso e as cargas de trabalho padrão, o valor padrão deve ser adequado. Se você observar muita troca ou muita E/S, talvez queira ajustar cuidadosamente o valor, mas terá que testá-lo. Basta alterar o valor e verificar como ele afeta o desempenho da máquina até atingir um estado que melhor se adapte à sua máquina e carga de trabalho específicas.