Saltar al contenido

Optimizar y mejorar el rendimiento de los agentes privados de Jitterbit

Introducción

A medida que los proyectos se vuelven más grandes y complejos, los agentes privados pueden tardar más en ejecutar operaciones y sincronizar los datos de las operación. Para mejorar el rendimiento de los agentes privados, siga las guías de esta página. (Si tiene problemas de rendimiento importantes, comuníquese con soporte de Jitterbit.)

Ajuste del rendimiento de los agentes privados

En esta sección se ofrece un conjunto de configuraciones recomendadas para mejorar el rendimiento de los agentes privados que experimentan cargas de trabajo superiores a la media.

Nota

El conjunto se basa en los resultados de las pruebas internas de Jitterbit y se aplica a las versiones 11.22 o posteriores del agente privado que se ejecutan con un servidor de base de datos PostgreSQL 14 en una instancia con al menos 16 GB de RAM.

Para utilizar este conjunto de configuración, configure los componentes de su agente privado de acuerdo con la siguiente tabla:

Componente Archivo de configuración Ubicación (Windows) Ubicación (Docker/ Linux)
Servidor Tomcat jitterbit-agent-config.properties JITTERBIT_HOME\Resources\ JITTERBIT_HOME/Resources/
Agente privado jitterbit.conf JITTERBIT_HOME JITTERBIT_HOME
Módulo de multiprocesamiento Apache httpd-mpm.conf JITTERBIT_HOME\Apache\conf\extra\ JITTERBIT_HOME/apache/conf/extra/
Servicio de limpieza de archivos CleanupRules.xml JITTERBIT_HOME JITTERBIT_HOME
Máquina virtual Java Panel de control de Java /etc/sysconfig/jitterbit

JITTERBIT_HOME Es el directorio de instalación, por defecto C:\Program Files\Jitterbit Agent\ en Microsoft Windows, /opt/jitterbit/ en Docker y Linux.

Importante

Aplique todas las partes de este conjunto de configuración, no solo algunas de ellas. Después de realizar el conjunto completo de cambios, reinicie el agente privado.

Configuración del servidor Tomcat

Editar jitterbit-agent-config.properties y establezca los siguientes valores:

1
2
agent.heart.beat.interval = 3
max.concurrent.requests = 200
  • Línea 1: recomendada para hosts de Microsoft Azure para evitar la finalización prematura de la conexión WebSocket.
  • Línea 2: Aumentar el número máximo de solicitudes.

Asignación de memoria de la máquina virtual Java

Aumente los valores del agente privado Asignación de memoria inicial y máxima de la máquina virtual Java (Parámetros de Java -Xms y -Xmx) al mismo valor según la siguiente fórmula:

\((Total\Disponible\Host\Memoria\- 4)\times 0,75\)

Configuración de agente privado

Editar jitterbit.conf y configure los siguientes valores en cada sección:

  1. Habilite el agrupamiento interno:

    [DbInfo]
    UseInternalPooling = true
    
  2. Aumentar los subprocesos de trabajo:

    [ProcessEngine]
    MaxNumberOfWorkerThreads = X
    

    donde \(X = 4 \times\) (número de vCPU o núcleos).

    Nota

    Un valor de auto El valor predeterminado es 2 veces la cantidad de vCPU/núcleos.

  3. Cambie los valores de lo siguiente:

    • MaxOperationStackDepth: Número máximo de operaciones sincrónicas que se pueden poner en cola para su ejecución (valor predeterminado) 50).
    • MaxAsyncOperationChainLength: Número máximo de operaciones asincrónicas secundarias que se pueden generar (valor predeterminado) 50).
    [OperationEngine]
    MaxOperationStackDepth = 200
    MaxAsyncOperationChainLength = 200
    
  4. Habilite el registro:

    [APIOperation]
    EnableLogging = true
    
  5. Cambie el intervalo de limpieza de archivos:

    [FileCleanup]
    FrequencyInHours = 6.0
    
  6. Aumente el número máximo de conexiones HTTP en el grupo y el número máximo de conexiones por enrutar:

    [HttpConnectionPoolLocal]
    MaxConnections = 200
    MaxConnectionsPerRoute = 200
    
  7. Agregue la siguiente sección y los siguientes valores. Esto evita una gran acumulación de registros de sincronización de registros y mejora la eficiencia del remitente de registros:

    [LogSync]
    MaxRecordsToSync = 2000
    MinRecordsToSync = 2000
    

Configuración del módulo de multiprocesamiento Apache

Establezca los siguientes valores en el <IfModule mpm_event_module>Sección de la httpd-mpm.conf archivo:

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

Reglas de limpieza

Revisar y editar las reglas del servicio de limpieza de archivos.

Ajuste del rendimiento de sincronización del ambiente

Cuando se desplegar an Integration Studio o un proyecto de Design Studio, el ambiente del proyecto se bloquea mientras se sincronizan los datos entre los servidores en la nube de Harmony y todos los agentes privados del grupo de agentes. Mientras un ambiente está bloqueado, no se procesan operaciones. Para evitar que este comportamiento afecte la ejecución de sus proyectos, aplique los siguientes consejos:

  • Reducir el tamaño de los proyectos:

    Los proyectos grandes tardan más en desplegar y sincronizarse. Para reducir el tamaño de los proyectos, haga lo siguiente:

    • Minimizar el número de operaciones.

    • En las transformaciones, utiliza sólo los campos que necesitas.

    • Eliminar componentes no utilizados.

  • Reducir el número de proyectos por ambiente:

    Durante la sincronización del ambiente, todo el ambiente se bloquea. Para reducir el efecto de esto, haga lo siguiente:

    • Utilice más ambientes y distribuya su cartera de proyectos de manera uniforme entre ellos.

    • Mantenga los proyectos de alta disponibilidad (HA) y los proyectos que no son de alta disponibilidad en ambientes separados.

  • Desplegar durante tiempos de baja carga:

    Para reducir el impacto de los tiempos de sincronización en los sistemas de producción, programe las implementaciones de su proyecto para que se ejecuten durante horas de menor actividad.

  • Tiempos de sincronización del monitor:

    Para monitorear los tiempos de sincronización del ambiente, escanee el JITTERBIT_HOME/log/jitterbit-agent.log Para el 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
    

    En el ejemplo anterior, la información de registro es la siguiente:

    Descripción Ejemplo
    Identificación del ambiente 227680
    ID del grupo de Agente 171230
    Duración de la sincronización en milisegundos 4388
    Número de TranDb filas actualizadas 1