Ir para o conteúdo

Otimize e melhore o desempenho dos agentes privados do 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ções. Para melhorar o desempenho do agente privado, siga os guias nesta página. (Para problemas de desempenho significativos, entre em contato com o suporte do 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 estão enfrentando cargas de trabalho superiores à média.

Nota

O conjunto é baseado nos resultados dos testes internos do Jitterbit e se aplica a versões do agente privado 11.22 ou posteriores, executando 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 privado jitterbit.conf JITTERBIT_HOME JITTERBIT_HOME
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ções, não apenas algumas delas. Após fazer o conjunto completo de alterações, reinicie o agente privado.

Configuração do servidor Tomcat

Edite 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 Microsoft Azure para evitar a terminação prematura da conexão WebSocket.
  • Linha 2: Aumente o número máximo de solicitações.

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

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

\((Total\ Available\ Host\ Memory - 4) \times 0.75\)

Configuração do agente privado

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

  1. Ative o pooling interno:

    [DbInfo]
    UseInternalPooling = true
    
  2. Aumente o número de threads de trabalho:

    [ProcessEngine]
    MaxNumberOfWorkerThreads = X
    

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

    Nota

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

  3. Altere os valores para os seguintes:

    • 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 filhas que podem ser geradas (valor padrão 50).
    [OperationEngine]
    MaxOperationStackDepth = 200
    MaxAsyncOperationChainLength = 200
    
  4. Ative o registro:

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

    [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 rota:

[HttpConnectionPoolLocal]
MaxConnections = 200
MaxConnectionsPerRoute = 200

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ê implanta um projeto do Integration Studio ou Design Studio, o ambiente do projeto é bloqueado enquanto os dados são sincronizados entre os servidores em nuvem Harmony e todos os agentes privados no grupo de agentes. Enquanto um ambiente está bloqueado, nenhuma operação é processada. Para evitar que esse comportamento afete a execução de seus projetos, aplique as seguintes dicas:

  • Reduza o tamanho dos projetos:

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

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

    • Nas transformações, use apenas os campos que você precisa.

    • 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 de forma equilibrada entre eles.

    • Mantenha projetos de alta disponibilidade (HA) e projetos não-HA em ambientes separados.

  • Implante durante horários de baixa carga:

    Para reduzir o impacto dos tempos de sincronização em sistemas de produção, agende suas implantações de projetos para serem executadas durante horários de menor movimento.

  • Monitore os tempos de sincronização:

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

    Exemplo de entrada de log
    2024-07-30 15:54:24 environment-deploy-sync-thread-thread-1  INFO org.jitterbit.integration.server.messaging.agent.deploysync.SynchronizeAgent:620 - Sincronização do agente para o ambiente 227680 e ID do grupo de agentes 171230 concluída às 18:54:24,667 duração em MS: 4388 Linhas atualizadas: 1 pelo thread: 33 nome environment-deploy-sync-thread-thread-1
    

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

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