Compreendendo os perfis ajustados recomendados do RedHat

7

Vamos implantar (e numad) em ~ 1000 servidores, a maioria deles sendo servidores VMware no armazenamento NetApp ou 3Par.

De acordo com a documentação do RedHats, devemos escolher o perfil virtual-guest . O que está fazendo pode ser visto aqui: tuned.conf

Estamos mudando o agendador de IO para o NOOP, já que tanto o VMware quanto o NetApp / 3Par devem fazer um agendamento suficiente para nós.

No entanto, depois de investigar um pouco, não sei por que eles estão aumentando vm.dirty_ratio e kernel.sched_min_granularity_ns .

Até onde eu entendi, aumentar cada vez mais vm.dirty_ratio a 40% significa que, para um servidor com 20GB de RAM, 8GB pode estar sujo a qualquer momento, a menos que vm.dirty_writeback_centisecs seja atingido primeiro. E enquanto descarregar esses 8 GB, todos os pedidos de veiculação serão bloqueados até que as páginas sujas sejam liberadas.

Aumentar o dirty_ratio provavelmente significaria um desempenho de gravação mais alto nos picos, já que agora temos um cache maior, mas, novamente, quando o cache preencher IO, ele será bloqueado por um tempo consideravelmente maior (vários segundos).

O outro é porque eles estão aumentando o sched_min_granularity_ns . Se eu entendi corretamente, aumentar este valor diminuirá o número de intervalos de tempo por epoch ( sched_latency_ns ), o que significa que as tarefas em execução terão mais tempo para concluir seu trabalho. Eu posso entender isso sendo uma coisa muito boa para aplicações com poucos threads, mas por exemplo. apache ou outros processos com muitos threads, isso não seria contraproducente?

    
por espenfjo 26.06.2013 / 09:34

3 respostas

7

A resposta curta é que qualquer ajuste é trabalho de adivinhação e só tem valor quando feito backup com dados empíricos: Experimente. Meça isto. Se você não gosta, ajuste-o.

Uma resposta mais longa:

Increasing the dirty_ratio would probably mean higher write performance ...IO will be blocked for a considerably longer time

Não. Aumentar a taxa de sujeira significa que seu sistema tem menos probabilidade de entrar em um estado em que precisa começar a bloquear as gravações. A desvantagem é que há mais memória usada e maior risco de perda de dados em uma interrupção.

meaning that running tasks will get more time to finish their work

Os processos costumam render antes que a fatia de tempo expire. O problema com uma VM é que sua máquina pode estar competindo por CPU e cache L1 / L2 com outras VMs - altos níveis de troca de tarefas (devido à antecipação) têm um grande impacto na taxa de transferência. O tipo de aplicativos que normalmente são implantados em VMs são aqueles que são ligados à CPU (servidores da Web, servidores de aplicativos).

Sim, o aumento na taxa de transferência (que se aplica a todos os tipos de aplicativos) ocorrerá ao custo de um aumento na latência - mas o segundo é da ordem de microssegundos quando a maioria das transações está levando milissegundos. Se você precisa de capacidade em tempo real / latência muito baixa, então você não deveria estar usando uma VM.

    
por 26.06.2013 / 12:05
12

Aqui está o cronograma das configurações do sintonizador-adm ...

Acho que ajuda vê-los em formato tabular. A principal coisa a notar é que as configurações padrão do RHEL6 são ruins! A outra coisa é que os perfis de armazenamento corporativo e guest virtual são idênticos, exceto pelo swappiness reduzido . lado virtual do convidado (faz sentido, certo?).

QuantoaumarecomendaçãosobreoelevadordeE/Sdearmazenamento,vocêtemalgumascamadasdeabstraçãonacamadadearmazenamento.Ousodo agendador noop faria sentido se você estivesse usando RDMs ou apresentando armazenamento diretamente em suas máquinas virtuais. Mas, como vão viver no NFS ou no VMFS, ainda gosto das opções de ajuste adicionais oferecidas pelo programador de prazos.

Os perfis ajustados podem ser alterados dinamicamente nos sistemas em execução, portanto, se você tiver alguma dúvida, teste com seu aplicativo e o ambiente e o benchmark específicos.

    
por 26.06.2013 / 14:30
8

Assista aos vídeos de ajuste de performance de Shak e Larry da Summit, eles falam sobre os perfis ajustados em profundidade.

Um dos maiores objetivos pretendidos é que os perfis são apenas um ponto de partida recomendado, não números imutáveis que são magicamente perfeitos para todos os ambientes.

Comece com um perfil e jogue com as configurações. Gere uma boa carga de trabalho de teste de produção e meça as métricas que são importantes para o seu negócio.

Mude uma coisa de cada vez e grave cada resultado em cada iteração. Quando terminar, analise os resultados e escolha as configurações que deram os melhores resultados. Esse é o seu perfil ideal ajustado.

    
por 28.06.2013 / 14:11