Ir para o conteúdo

Otimize e melhore o desempenho dos agentes privados Jitterbit

Introdução

À medida que os projetos se tornam maiores e mais complexos, os agentes privados podem levar mais tempo para executar operações e sincronizar dados de operação. Para melhorar o desempenho do agente privado, siga os guias nesta página. (Para problemas significativos de desempenho, entre em contato com suporte Jitterbit.)

Ajuste de desempenho do agente privado

Esta seção fornece um conjunto de configurações recomendadas para melhorar o desempenho de agentes privados que enfrentam cargas de trabalho maiores do que a média.

Nota

O conjunto é baseado nos resultados dos testes internos da Jitterbit e se aplica às versões 11.22 ou posteriores do agente privado em execução com um servidor de banco de dados PostgreSQL 14 em uma instância com pelo menos 16 GB de RAM.

Para usar este conjunto de configurações, configure os componentes do seu agente privado de acordo com a tabela a seguir:

Componente Arquivo de configuração Localização (Windows) Localização (Docker/ Linux)
Servidor Tomcat jitterbit-agent-config.properties JITTERBIT_HOME\Resources\ JITTERBIT_HOME/Resources/
Agente particular jitterbit.conf JITTERBIT_HOME JITTERBIT_HOME
Módulo de multiprocessamento Apache httpd-mpm.conf JITTERBIT_HOME\Apache\conf\extra\ JITTERBIT_HOME/apache/conf/extra/
Serviço de limpeza de arquivos CleanupRules.xml JITTERBIT_HOME JITTERBIT_HOME
Máquina virtual Java Painel de controle Java /etc/sysconfig/jitterbit

JITTERBIT_HOME é o diretório de instalação, por padrão C:\Program Files\Jitterbit Agent\ no Microsoft Windows, /opt/jitterbit/ no Docker e Linux.

Importante

Aplique todas as partes deste conjunto de configuração, não algumas delas. Após fazer o conjunto completo de alterações, reinicie o agente privado.

Configuração do servidor Tomcat

Editar jitterbit-agent-config.properties e defina os seguintes valores:

1
2
agent.heart.beat.interval = 3
max.concurrent.requests = 200
  • Linha 1: Recomendado para hosts do Microsoft Azure para evitar o encerramento prematuro da conexão WebSocket.
  • Linha 2: Aumentar o número máximo de solicitações.

Alocação de memória da máquina virtual Java

Aumente os valores para o agente privado Alocação de memória inicial e máxima da Java VM (Parâmetros Java -Xms e -Xmx) para o mesmo valor de acordo com a seguinte fórmula:

\((Total\ Disponível\ Host\ Memória - 4) \vezes 0,75\)

Configuração do agente privado

Editar jitterbit.conf e defina os seguintes valores em cada seção:

  1. Habilitar pooling interno:

    [DbInfo]
    UseInternalPooling = true
    
  2. Aumentar threads de trabalho:

    [ProcessEngine]
    MaxNumberOfWorkerThreads = X
    

    onde \(X = 4 \times\) (número de vCPUs ou núcleos).

    Nota

    Um valor de auto padrão para \(2 \vezes\) o número de vCPUs/núcleos.

  3. Altere os valores para o seguinte:

    • MaxOperationStackDepth: Número máximo de operações síncronas que podem ser enfileiradas para execução (valor padrão 50).
    • MaxAsyncOperationChainLength: Número máximo de operações assíncronas filho que podem ser geradas (valor padrão 50).
    [OperationEngine]
    MaxOperationStackDepth = 200
    MaxAsyncOperationChainLength = 200
    
  4. Habilite o registro em log:

    [APIOperation]
    EnableLogging = true
    
  5. Altere o intervalo de limpeza do arquivo:

    [FileCleanup]
    FrequencyInHours = 6.0
    
  6. Aumente o número máximo de conexões HTTP no pool e o número máximo de conexões por rotear:

    [HttpConnectionPoolLocal]
    MaxConnections = 200
    MaxConnectionsPerRoute = 200
    
  7. Adicione a seguinte seção e valores. Isso evita um grande backlog de registro de sincronização de log e melhora a eficiência do remetente de log:

    [LogSync]
    MaxRecordsToSync = 2000
    MinRecordsToSync = 2000
    

Configuração do módulo de multiprocessamento Apache

Defina os seguintes valores em <IfModule mpm_event_module>seção do httpd-mpm.conf arquivo:

<IfModule mpm_event_module>
    ServerLimit                8
    StartServers               8
    MinSpareThreads            128
    MaxSpareThreads            128
    ThreadsPerChild            16
    ThreadLimit                64
    MaxRequestWorkers          128
    MaxConnectionsPerChild     1000
</IfModule>

Regras de limpeza

Revise e edite as regras do serviço de limpeza de arquivos.

Ajuste de desempenho de sincronização de ambiente

Quando você implantar an Integration Studio ou projeto do Design Studio, o ambiente do projeto é bloqueado enquanto os dados são sincronizados entre os servidores de nuvem Harmony e todos os agentes privados no grupo de agentes. Enquanto um ambiente é bloqueado, nenhuma operação é processada. Para evitar que esse comportamento afete a execução dos seus projetos, aplique as seguintes dicas:

  • Reduza o tamanho dos projetos:

    Projetos grandes levam mais tempo para implantar e sincronizados. Para reduzir o tamanho dos projetos, faça o seguinte:

    • Minimize o número de operações.

    • Nas transformações, utilize apenas os campos necessários.

    • Exclua componentes não utilizados.

  • Reduza o número de projetos por ambiente:

    Durante a sincronização do ambiente, todo o ambiente é bloqueado. Para reduzir o efeito disso, faça o seguinte:

    • Use mais ambientes e distribua seu portfólio de projetos uniformemente entre eles.

    • Mantenha projetos de alta disponibilidade (HA) e projetos sem HA em ambientes separados.

  • Implantar durante períodos de baixa carga:

    Para reduzir o impacto dos tempos de sincronização nos sistemas de produção, programe as implantações do seu projeto para serem executadas em horários de menor movimento.

  • Monitorar tempos de sincronização:

    Para monitorar os tempos de sincronização do ambiente, escaneie o JITTERBIT_HOME/log/jitterbit-agent.log para o texto environment-deploy:

    Example log entry
    2024-07-30 15:54:24 environment-deploy-sync-thread-thread-1  INFO org.jitterbit.integration.server.messaging.agent.deploysync.SynchronizeAgent:620 - Agent synchronization for environment 227680 and agent group ID 171230 completed at 18:54:24,667 duration in MS: 4388 Rows updated: 1 by thread: 33 name environment-deploy-sync-thread-thread-1
    

    No exemplo acima, as informações de log são as seguintes:

    Descrição Exemplo
    ID do ambiente 227680
    ID do grupo do Agente 171230
    Duração da sincronização em milissegundos 4388
    Número de TranDb linhas atualizadas 1