Por que o swappiness = 10 é recomendado?

9

Um valor de swappiness=10é recomendado no SwapFaq do Ubuntu .

Por que o valor 10 é recomendado e não swappiness=0?

Existem profissionais de 10 ou contras de zero?

Eric
fonte
3
@ Mitch Essa pergunta é sobre por que as pessoas recomendam reduzir o swappiness. Esta questão é diferente; está perguntando por que a troca deve estar acima de zero . Portanto, isso não está perguntando por que as pessoas recomendam que seja tão baixo ; está perguntando por que a recomendação é tão alta quanto é. Como a resposta lá (racionalmente) discorda do argumento de reduzir a swappiness até aqui, há alguma sobreposição com a minha resposta aqui, mas, no final das contas, acho que essas são perguntas separadas (embora relacionadas) com respostas separadas.
Elias Kagan #
@EliahKagan touché :)
Mitch

Respostas:

9

swappiness=0vai esperar para trocar até que seja absolutamente necessário. Definir um valor moderado como swappiness=10fará com que as páginas sejam trocadas da memória para o disco com um pouco mais de facilidade. Isso pode impedir a necessidade de trocar muito de uma só vez; essa necessidade pode introduzir atrasos irritantes.

Além disso, geralmente um processo é executado, mas não faz nada por um período prolongado. Muitos daemons (serviços de segundo plano) se comportam dessa maneira. Você pode ter um aplicativo em segundo plano que não é utilizado por um tempo. Atualmente, alguns aplicativos são implementados como vários processos, como o Chromium e o Google Chrome, em que cada guia possui um processo separado por trás (não um thread separado, mas um processo separado ). Definir swappinessum valor como 10 faz com que essas tarefas em segundo plano que não estão sendo usadas ativamente sejam trocadas para a memória, mesmo quando elas podem permanecer cheias na RAM. Então, quando um processo usado mais ativamente precisar alocar mais RAM, poderá fazê-lo mais rapidamente.

Concluindo, permitir que os processos sejam trocados da RAM para o disco antes do necessário geralmente confere um benefício de desempenho e latências mais baixas quando um processo aloca memória. Isso ocorre às custas do tempo necessário para trocar os processos novamente. Mas isso geralmente é feito com muito menos frequência do que um processo em uso ativo aloca e libera memória, de modo que a troca geralmente vale a pena.

Eliah Kagan
fonte
Você também deve levar em consideração o buffer da sua unidade. Se você tiver um SSD com um buffer de 512 MB e 4 GB de RAM. você provavelmente pode deixar isso em 10 sem se preocupar com problemas de desempenho, porque qualquer programa poderá alocar quase instantaneamente cerca de 1 GB de RAM. Eu tenho um SSD com buffer de 256 MB e 8 GB de RAM, então também o deixo com 10 porque também garante uma alocação rápida de cerca de 1 GB, que raramente preciso.
stackount