Implementaremos o ajuste (e o numad) em ~ 1000 servidores, a maioria deles servidores VMware no armazenamento NetApp ou 3Par.
De acordo com a documentação do RedHats, devemos escolher o virtual-guestperfil. O que está fazendo pode ser visto aqui: tuned.conf
Estamos alterando o agendador de E / S para NOOP, pois o VMware e o NetApp / 3Par devem fazer agendamento suficiente para nós.
No entanto, depois de investigar um pouco, não sei por que eles estão aumentando vm.dirty_ratioe kernel.sched_min_granularity_ns.
Tanto quanto eu entendi, aumentar vm.dirty_ratiopara 40% significa que, para um servidor com 20 GB de RAM, 8 GB podem estar sujos a qualquer momento, a menos que vm.dirty_writeback_centisecsseja atingido primeiro. E durante a liberação desses 8 GB, todas as E / S do aplicativo serão bloqueadas até que as páginas sujas sejam liberadas.
Aumentar o dirty_ratio provavelmente significaria maior desempenho de gravação em picos, pois agora temos um cache maior, mas, novamente, quando o cache preencher IO, será bloqueado por um tempo consideravelmente mais longo (vários segundos).
A outra é por que eles estão aumentando o sched_min_granularity_ns. Se eu entendi corretamente, aumentar esse valor diminuirá o número de intervalos de tempo por época ( sched_latency_ns), o que significa que as tarefas em execução terão mais tempo para concluir seu trabalho. Eu posso entender que isso é uma coisa muito boa para aplicativos com muito poucos threads, mas por exemplo. apache ou outros processos com muitos threads isso não seria contraproducente?
