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 en sincronizar datos de operaciones. Para mejorar el rendimiento de los agentes privados, siga las guías en esta página. (Para problemas de rendimiento significativos, contacte al soporte de Jitterbit.)

Ajuste del rendimiento del agente privado

Esta sección proporciona 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 de agentes privados 11.22 o posteriores 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 configuraciones, 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
Servicio de limpieza de archivos CleanupRules.xml JITTERBIT_HOME JITTERBIT_HOME
Máquina virtual de 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

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

Configuración del servidor Tomcat

Edita jitterbit-agent-config.properties y establece los siguientes valores:

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

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

Aumenta los valores para la asignación de memoria inicial y máxima de la Java VM del agente privado (parámetros de Java -Xms y -Xmx) al mismo valor según la siguiente fórmula:

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

Configuración del agente privado

Edita jitterbit.conf y establece los siguientes valores en cada sección:

  1. Habilita el agrupamiento interno:

    [DbInfo]
    UseInternalPooling = true
    
  2. Aumenta los hilos de trabajo:

    [ProcessEngine]
    MaxNumberOfWorkerThreads = X
    

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

    Nota

    Un valor de auto predetermina a \(2 \times\) el número de vCPUs/núcleos.

  3. Cambia los valores para lo siguiente:

    • MaxOperationStackDepth: Número máximo de operaciones síncronas que pueden estar en cola para ejecución (valor predeterminado 50).
    • MaxAsyncOperationChainLength: Número máximo de operaciones asíncronas secundarias que pueden ser generadas (valor predeterminado 50).
    [OperationEngine]
    MaxOperationStackDepth = 200
    MaxAsyncOperationChainLength = 200
    
  4. Habilita el registro:

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

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

[HttpConnectionPoolLocal]
MaxConnections = 200
MaxConnectionsPerRoute = 200

Reglas de limpieza

Revisa y edita las reglas del servicio de limpieza de archivos.

Ajuste del rendimiento de sincronización del entorno

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

  • Reduce el tamaño de los proyectos:

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

    • Minimiza el número de operaciones.

    • En las transformaciones, utiliza solo los campos que necesitas.

    • Elimina componentes no utilizados.

  • Reduce el número de proyectos por entorno:

    Durante la sincronización del entorno, todo el entorno está bloqueado. Para reducir el efecto de esto, haz lo siguiente:

    • Utiliza más entornos y distribuye tu portafolio de proyectos de manera uniforme entre ellos.

    • Mantén proyectos de alta disponibilidad (HA) y proyectos no HA en entornos separados.

  • Despliega durante horas de baja carga:

    Para reducir el impacto de los tiempos de sincronización en los sistemas de producción, programa tus despliegues de proyectos para que se realicen durante horas de menor actividad.

  • Monitorea los tiempos de sincronización:

    Para monitorear los tiempos de sincronización del entorno, escanea el JITTERBIT_HOME/log/jitterbit-agent.log en busca del texto environment-deploy:

    Ejemplo de entrada de registro
    2024-07-30 15:54:24 environment-deploy-sync-thread-thread-1  INFO org.jitterbit.integration.server.messaging.agent.deploysync.SynchronizeAgent:620 - La sincronización del agente para el entorno 227680 y el ID del grupo de agentes 171230 se completó a las 18:54:24,667 duración en MS: 4388 Filas actualizadas: 1 por hilo: 33 nombre environment-deploy-sync-thread-thread-1
    

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

    Descripción Ejemplo
    ID del entorno 227680
    ID del grupo de agentes 171230
    Duración de sincronización en milisegundos 4388
    Número de filas de TranDb actualizadas 1