Temos notado que a performance no Windows Server 2016 é menor do que nas versões anteriores, considerando o mesmo hardware e o mesmo banco de dados.
Há uma opção que influencia drasticamente o desempenho dos Windows Server 2016: o plano de energia.
Por padrão, o Windows 2016 usa o plano de energia Equilibrado, que equilibra automaticamente o desempenho x consumo de energia nos hardwares compatíveis. Esse plano equilibrado de energia no Windows Server 2016 suprime consideravelmente o desempenho da CPU, diminuindo o desempenho geral do servidor.
É possível mudar o plano de energia em tempo real, sem necessidade de reiniciar o servidor.
Veja o efeito prático da mudança do plano de energia para a configuração "Alta Performance", em um servidor com Banco de dados Firebird servindo 70 conexões:
Efeito do plano de energia de alto desempenho no uso da CPU
Isso mostra apenas o uso da CPU, mas como fica o desempenho global? Fizemos vários testes semelhantes ao TPCC (simulação de uma aplicação OLTP), e obtivemos os seguintes números:
Plano de energia | Throughput de TPC-C (quanto maior melhor) |
---|---|
Equilibrado | 17029 |
Alto desempenho | 21226 |
Este teste é altamente focado em disco, então a diferença mostrada é de apenas 20%, mas para as operações que dependem mais de CPU, a melhoria pode ser ainda maior.
Além disso, efetuamos o teste de restauração (com gbak - c) do banco de dados Firebird 2.5 de 144Gb, com planos de energia diferente:
Plano de energia | Tempo de restauração (a menos, melhor) |
---|---|
Equilibrado | 4 horas e 7 minutos |
Alto desempenho | 2 horas e 35 minutos |
Alterar o plano de energia quase dobrou o desempenho de restauração! Por que temos um aumento de desempenho tão perceptível? A resposta está nos índices: durante a restauração, eles usam intensamente a CPU para ordenação de valores.
Observe os valores de tempo de restauração do gbak (em segundos), para os 5 maiores índices.
Com gbak e plano de energia equilibrado:
gbak: 9529.339 1230.343 5028900 346529 activating and creating deferred index INDMF_TAG_PLC_DATA_DT_DTempo total: 3.775 segundos
gbak: 10787.610 1258.270 5028909 233365 activating and creating deferred index INDMF_TAG_PLC_DATA_TAG_D
gbak: 11824.329 1036.718 5028907 216488 activating and creating deferred index INDMF_TAG_PLC_DATA_LU_D
gbak: 12571.012 746.683 5028907 265160 activating and creating deferred index INDMF_TAG_PLC_DATA_C1
gbak: 13304.334 733.321 5028908 359393 activating and creating deferred index PKMNF2_DOC_DOWNTIME
Com o plano de energia de alto desempenho:
gbak: 5301.785 615,045 5028900 346529 activating and creating deferred index INDMF_TAG_PLC_DATA_DT_D gbak: 5924.667 622.882 5028909 233365 activating and creating deferred index INDMF_TAG_PLC_DATA_TAG_D
gbak: 6569.815 645.147 5028907 216488 activating and creating deferred index INDMF_TAG_PLC_DATA_LU_D
gbak: 7186.322 616.506 5028907 265160 activating and creating deferred index INDMF_TAG_PLC_DATA_C1
gbak: 7894.340 708.018 5028908 359393 activating and creating deferred index PKMNF2_DOC_DOWNTIME
Tempo total: 2.593 segundos
Então, essa simples configuração no Painel de controle -> Hardware ->Opções de energia, pode melhorar significativamente o desempenho de banco de dados Firebird no Windows Server 2016. Verifique e habilite o plano de energia de alto desempenho!