Skip to content

Dimensionar o Agente ETL ​

Tipo
Como fazer
Para
Engenharia de dados
Na tela
HorusETL › Configurar Agentes ETL

Na dúvida, peça para a máquina do Agente ETL 2 vCPU, 4 GB de RAM e 10 GB livres em disco: atende a maioria dos casos. Os outros perfis, e o que fazer quando os agendamentos atrasam, vêm a seguir.

Escolher o perfil ​

PerfilvCPURAMDisco livreQuando usar
Mínimo12 GB10 GBpouco volume, só banco para HorusDW, sem nó Python
Recomendado24 GB10 GBuso geral, origens variadas, volume moderado
Alto4 ou mais8 GB ou mais20 GBnó Python com dados grandes em memória, ou Agente que atende muitos Tenants

Os valores valem para Windows e para Docker.

Por que a memória decide ​

A carga de banco para o HorusDW lê em lotes de cerca de 5 mil linhas e envia aos poucos. Uma tabela de 10 mil ou de 10 milhões de linhas usa quase a mesma memória.

O nó Python roda num processo separado, e um script que junta DataFrames grandes (pd.concat, merge) carrega tudo de uma vez. Ele vai de centenas de MB a vários GB numa execução. Se os Dataflows usam Python sobre volume grande, comece no perfil Alto.

CPU raramente é o limite. O disco guarda o Agente e os arquivos Parquet temporários de cada carga, apagados no fim; o pico acontece durante as cargas grandes.

Contar quantas execuções rodam juntas ​

Os agendamentos de um mesmo Tenant rodam um de cada vez, para proteger a memória da máquina. O limite Agendamentos Simultâneos: vale entre Tenants diferentes. A execução manual por Forçar execução não espera essa fila. Mesmo com centenas de disparos de uma vez, o Agente nunca passa do limite: o que sobra espera numa fila.

AgenteExecuções ao mesmo tempoDimensione pela
De um Tenant só, instalado na rede do clienteuma, mais as da pista paralelamemória do Dataflow mais pesado
Na nuvem, atendendo vários Tenantsaté o valor de Agendamentos Simultâneos:soma dos Tenants que rodam juntos no pico

Os agendamentos marcados com Executar em paralelo, sem esperar a fila somam, até o limite Execuções paralelas fora da fila:.

Desfazer o acúmulo na fila ​

Se os agendamentos de um Tenant levam mais tempo do que o intervalo entre eles, a fila nunca esvazia e cada execução começa mais tarde que a anterior. Dez agendamentos a cada 10 minutos, cada um com mais de 1 minuto, já não cabem.

Subir Agendamentos Simultâneos: não resolve, porque os agendamentos do mesmo Tenant não rodam juntos. Faça uma destas:

  • espace os agendamentos, ou junte vários Dataflows num agendamento só;
  • encurte cada Dataflow, trocando Total por Janela ou Incremental; ver Escolher a carga de uma tabela;
  • marque os agendamentos leves com Executar em paralelo, sem esperar a fila, para que não esperem os pesados.

Num Agente que atende vários Tenants e fica sem vaga, aí sim suba Agendamentos Simultâneos: e a memória junto.

Se der errado ​

O Agente cai durante uma carga com nó Python. Falta memória. Aumente a RAM ou faça o script processar em partes.

Agendamentos aparecem como Atrasado em Eventos. A fila do Tenant acumulou; ver Desfazer o acúmulo na fila.

Relacionado ​