Esta página foi traduzida por máquina. Leia o original em inglês. English

Biblioteca IBSurgeon

Como fazer o Firebird funcionar 20% mais rápido no Windows Server 2016 em menos de 1 minuto

Cada vez mais usuários migram para o Windows Server 2016 a partir de versões antigas, e alguns deles notaram que o Windows Server 2016 funciona mais lentamente do que versões anteriores, mesmo no mesmo hardware com o mesmo banco de dados.

Fizemos vários testes no Windows Server 2016 e Firebird e descobrimos, entre outras coisas, a opção que influencia drasticamente o desempenho do Windows Server 2016: o plano de energia.

Por padrão, o Windows 2016 tem o plano de energia «Equilibrado», que automaticamente equilibra o desempenho com o consumo de energia em hardware capaz. Bem, parece inofensivo, mas na verdade, o plano de energia Equilibrado no Windows Server 2016 suprime bastante o desempenho da CPU e reduz o desempenho geral do servidor.

É possível alternar o plano de energia em tempo real, sem necessidade de reiniciar. Veja o efeito de habilitar o plano de energia «Alto desempenho» no servidor com banco de dados Firebird, que atende 70 conexões:

Efeito do plano de energia de Alto Desempenho na utilização da CPU

Ok, isso pode ser apenas utilização de CPU, e quanto ao desempenho geral? Executamos vários testes, semelhantes ao TPCC (simulação de aplicação OLTP) e obtivemos estes números:

Plano de Energia Throughput TPC-C (quanto maior, melhor)
Equilibrado 17029
Alto Desempenho 21226

Este teste é altamente limitado por disco, então a diferença é de apenas 20%; para operações intensivas de CPU, a melhoria pode ser ainda maior.

Além disso, realizamos o teste de restauração (com gbak -c) de um banco de dados Firebird 2.5 de 144Gb com diferentes planos de energia:

Plano de Energia Tempo de restauração (quanto menor, melhor)
Equilibrado 4 horas 7 minutos
Alto Desempenho 2 horas 35 minutos

A única opção de «economia de energia» quase dobrou o desempenho da restauração! Por que temos um aumento de desempenho tão notável? A resposta está nos índices: durante a restauração, eles usam intensivamente a CPU para ordenar valores.

Veja os valores de timestamps da restauração do gbak (em segundos) para os 5 maiores índices.

Com o plano de energia equilibrado no gbak:

Code
gbak: 9529.339 1230.343 5028900 346529     activating and creating deferred index INDMF_TAG_PLC_DATA_DT_D
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

Tempo total: 3775 segundos

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

Code
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: 2593 segundos

Resumo

Então, essa configuração simples em Painel de Controle -> Hardware -> Opções de Energia pode melhorar muito o desempenho do banco de dados Firebird no Windows Server 2016.

Por favor, verifique e habilite o plano de energia de Alto Desempenho imediatamente!

Mais leituras sobre desempenho de banco de dados Firebird:

Agradecimento especial a Oleg Matveev pela ajuda na preparação deste artigo!