Permutabilidade do Linux - Ajustando as configurações da VM do Kernel

9

Antes de ler isso, observe que compreendo os benefícios do cache. Estou familiarizado com o dogma de que carneiros não utilizados são carneiros desperdiçados.

Essa pergunta foi adaptada de uma pergunta anterior:

excluindo ram em cache do linux

Nessa pergunta, eu estava curioso para ajustar como meu servidor usa e armazena em cache o ram. O sistema é bastante dinâmico, então acredito que os arquivos em cache não me proporcionam muito ganho. Além disso, temos um código no servidor que precisa acessar rapidamente grandes quantidades de memória ram em curtos períodos de tempo para processar arquivos de vídeo e acredito que vou ver um benefício de desempenho ao entregar diretamente a memória RAM em vez de limpá-la do cache e, em seguida, entregando.

Gostaria de descobrir se algum de vocês tem experiência em ajustar o valor padrão de 60 no seguinte arquivo (isso acontece em um servidor Ubuntu):

/proc/sys/vm/swappiness  

E se sim, o que afeta você viu. Se eu substituir o valor padrão de 60 por 30, verei menos trocas e muito mais reutilização do cache obsoleto? Abordo 0 ou 100 para diminuir a permutabilidade e aumentar a reutilização do cache?

Finalmente, alguém sabe por que o padrão está definido como 60?

NOTA: Se estiver próximo de 0, o Linux preferirá manter os aplicativos na RAM e não aumentar os caches. Se estiver próximo de 100, o Linux preferirá trocar os aplicativos e aumentar os caches o máximo possível. O padrão é 60 saudável. - Obrigado pelo link abaixo, 3dInfluence.

Patrick R
fonte

Respostas:

6

Editar: Reescreva a resposta para que seja mais curta e clara, espero :)

Você realmente precisa entender como o subsistema da VM funciona como um todo para começar a ajustar os ajustáveis ​​ou poderá achar que não está obtendo os resultados esperados. Este artigo é um bom ponto de partida sobre como essas configurações funcionam em conjunto com uma inclinação da área de trabalho.

Muito mais para sua pergunta. A Swappiness controla quando o subsistema da VM recupera as páginas da tabela de processos desmapeando e paginando-as, também conhecida como troca. Esse ajuste funciona dizendo ao subsistema da VM que procure as páginas trocadas quando a% de memória mapeada para processar tabelas de páginas + valor de swappiness for> 100. Portanto, uma configuração de 60 fará com que o sistema comece a paginar páginas antigas da página de processo tabela quando estiver usando mais de 40% da memória do seu sistema. Se você deseja permitir que seus programas usem mais memória às custas do cache, diminua o valor da troca. Você também deseja dar uma olhada em / proc / sys / vm / min_free_kbytes e / proc / sys / vm / vfs_cache_pressure. Como isso também controlará quanta memória é mantida em reserva e quão agressivo é o cache.

3dinfluence
fonte
@ 3dinfluence - Estive trabalhando nesse artigo que você mencionou acima. Great Resourse!
Patrick R
1
linuxinsight.com/proc_sys_vm_hierarchy.html fornecerá uma ou duas frases sobre o que cada um dos ajustáveis ​​faz. Mas obtive essas informações sobre como o swappiness funciona em um livro chamado "Performance Tuning for Linux Servers"
3dinfluence
+1 graças a 3dinfluence. Até agora, esse livro foi extremamente educativo.
Patrick R
Isso é ótimo ... você conseguiu melhorar o desempenho do seu aplicativo?
3dinfluence
Consegui melhorar o desempenho. Além disso, descobri que o seguinte comando ajuda durante tweeking: # sysctl -w vm.swappiness = 40
Patrick R