Implementação GRID (Informações técnicas)
Produto: | Microsiga Protheus |
Ocorrência: | Implementação GRID (Informações técnicas) |
Passo a passo: | Introdução ao Grid de Processamento Advpl
Cada um destes componentes será visto em detalhes nos tópicos pertinentes abaixo, onde serão detalhadas as funcionalidades e responsabilidades de cada um dos componentes da aplicação.
2 - Grid Coordinator Trata-se de um Protheus Server, configurado como serviço. Pode ser configurado um GridServer por ambiente. Preferencialmente deve ser um serviço do Protheus independente dos demais. Deve ser configurado um JOB no mp8srv.ini, e colocado na seção ONSTART do Protheus Server Exemplo :
Comportamento e Funcionalidade: 3 -Grid Agent ( ou Agente ) Trata-se de um Protheus Server, configurado como serviço. Devem ser especificadas quantas instâncias / processos ( Threads ) do Agente serão disponibilizadas para uso no Grid. Exemplo :
4 - Considerações sobre Configuração e Uso do Grid de Processamento Ao configurarmos um Grid de Processamento, devemos ter em mente que, quando um agente é configurado para subir uma ou mais instâncias, durante o uso do Grid estas instâncias representarão um consumo de CPU relativamente alto no servidor-Agente em questão. Para o uso do Grid, devemos possuir um ambiente com um ou mais servidores Slave, configurados para execução de aplicações no mesmo ambiente, de forma semelhante à configuração de balanceamento de carga. É possível utilizarmos um serviço Slave do Protheus configurado para balanceamento de carga para ser um agente do Grid. Porem, devemos ter em mente que, quando o agente do grid estiver em uso, o serviço do Protheus vai usar os recursos do equipamento para atender às conexões de Remote e também as threads do Agente do Grid. Se estamos falando de um equipamento Slave, que suporta mais de um serviço do Protheus, é possível subir mais um serviço do Protheus no equipamento, configurado apenas para ser um Agente do Grid, SEM ser colocado na configuração de Balance. Desse modo, o serviço apenas seria utilizado quando de um processamento de Grid, e o servidor iria usar seus recursos para atender ao servidor Protheus Slave da conexão de Balance e para atender ao serviço do Protheus de Agente de Grid. A priori, não recomendo mais do que duas instâncias / threads de processamento em Grid para um equipamento. Como os processamentos em Grid são especialistas, eles tendem a consumir bastante a CPU do equipamento. Outro ponto que devemos levar em conta, são os dados utilizados para os processamentos do Grid, entrada e saída. Um processamento onde cada ação depende da busca de um conteúdo de registro na base de dados, colocado em mais de um servidor simultaneamente, vai exigir mais do servidor de banco de dados, e da infra-estrutura de rede quando em processamento. Logo, uma vez que a máquina de Banco de Dados bater 100% de CPU, por exemplo utilizando 4 servidores de Grid, não adianta acrescentar mais Agentes no processo, pois existe um gargalo no servidor de Banco de Dados. Assim também com o Grid, podemos ter gargalos de rede, para fazer os vai-e-vem das requisições. Em suma, o percentual obtido com o uso do Grid, configurado sob medida dentro dos recursos do ambiente de execução, varia de acordo com o tipo de processamento realizado, consumo de recursos de CPU, rede e banco de dados para trafegar as requisições e os dados de entrada e saída do processamento. E, este percentual não será 100%. Por exemplo, um processo que demora 10 minutos quando executado em um computador, não vai demorar 5 minutos quando executado em um Grid com 2 processos, e 2,5 minutos se executado com um Grid com 4 processos. Se os processos do Grid não tiverem concorrência entre si, nos dados de entrada e saída, não havendo gargalo de banco e rede, ter um ganho médio de 40% no processo é um número aceitável e dentro da realidade. |
Observações: |
|