Introdução
Como Melhorar o Tempo de Processamento e Consumo de CPU do Serviço Eletronic (Threads)?
Passo a passo
Foram realizados testes de carga a fim de validarmos a melhor configuração de Thread dos executores no seguinte cenário:
Ambiente:
VM01:Serviço DataBaseInput:
Retaguarda: e-Forms NFC-e 4.8.9.0 Patch 84733
Sistema Operacional: Windows Server 2012 R2
Processador: Intel Core i5-6400 2.70GHz
Memória: 8gb
VM02:Duas instâncias do Eletronic
Retaguarda: e-Forms NFC-e 4.8.9.0 Patch 84733
Sistema Operacional: Windows Server 2012 R2
Processador: Intel Core i3-540 3.07GHz
Memória: 6gb
VM03:Três instâncias do Eletronic
Retaguarda: e-Forms NFC-e 4.8.9.0 Patch 84733
Sistema Operacional: Windows Server 2012
Processador: Intel Xeon E5620 2.40GZ
Memória: 4gb
VM04:Banco de Dados
Banco de dados: Sql Server 2012
Sistema Operacional: Windows Server 2012 R2
Processador: Intel Core i5-6400 2.70GHz
Memória: 8gb
Teste:
Foram processadas e represadas, parando o serviço “DATABASEINPUT”, 50mil notas com 50 itens “em Contingência” para autorização, na tabela TBDATABASEINPUT, dividas em 10 Concentradores/Jobs que foram processadas por 5 instâncias e dois executores em cada instância. Para efeitos de comparativos foi realizado o teste duas vezes, um com a configuração “Padrão” das threads por executor e outro alterando as threads, para medirmos o Consumo de CPU e o tempo total para a conclusão do processamento.
Resultados:
Teste 01 com as Threads Padrão:
VM01: Consumo CPU (Serviço DatabaseInput):
VM02: Consumo CPU (Duas instâncias Eletronic):
VM03: Consumo CPU (Três instâncias Eletronic):
No Teste 01, utilizando as configurações padrões nas threads, o serviço DatabaseInput levou 39 minutos para terminar de consumir a tabela TBDATABASEINPUT e utilizou em média 32% a CPU, as duas instancias da VM02 terminaram o processamento da tabela TBINPROCESS em 1 hora e 5 minutos e utilizaram em média 86% a CPU e as três instancias da VM03 terminaram o processamento da tabela TBINPROCESS em 1 hora e 20 minutos e utilizaram em média 91% a CPU.
Teste 02 alterando as Threads conforme configurado no GPA:
(Threads para fila de retorno de 5 para 1, fila de CAN-INU de 5 para 1 e filtro secundário de 10 para 5).
VM01: Consumo CPU (Serviço DatabaseInput):
VM02: Consumo CPU (Duas instâncias Eletronic):
VM03: Consumo CPU (Três instâncias Eletronic):
No Teste 02, utilizando as configurações do GPA nas threads, o serviço DatabaseInput levou 39 minutos para terminar de consumir a tabela TBDATABASEINPUT e utilizou em média 32% a CPU, as duas instancias da VM02 terminaram o processamento da tabela TBINPROCESS em 54 minutos e utilizaram em média 79% a CPU e as três instancias da VM03 terminaram o processamento da tabela TBINPROCESS em 1 hora e 6 minutos e utilizaram em média 84% a CPU.
Conclusão:
Ao alterar as configurações padrões das threads, tivemos um ganho de 17% no tempo total de processamento das notas e 8% no consumo de CPU.
Apesar dos testes terem sido executados na versão 4.8.9.0, as configurações de Threads pode ser feita em qualquer versão do sistema com o usuário nddmaster.
Login: nddmaster Senha: m@ster.ndd1g1t@l.!@#$%
Outras informações
Fonte: Rainmakers Team