Breadcrumbs

Como Melhorar o Tempo de Processamento e Consumo de CPU do Serviço Eletronic (Threads)?

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:

image-20221130-034628.png

VM01: Consumo CPU (Serviço DatabaseInput):

image-20221130-034705.png

VM02: Consumo CPU (Duas instâncias Eletronic):

image-20221130-034700.png

VM03: Consumo CPU (Três instâncias Eletronic):

image-20221130-034657.png

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).

image-20221130-034650.png

VM01: Consumo CPU (Serviço DatabaseInput):

image-20221130-034717.png

VM02: Consumo CPU (Duas instâncias Eletronic):

image-20221130-034736.png

VM03: Consumo CPU (Três instâncias Eletronic):

image-20221130-034730.png

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