Zum Inhalt springen

Optimieren und verbessern Sie die Leistung privater Jitterbit-Agenten

Einführung

Wenn Projekte größer und komplexer werden, kann es länger dauern, bis private Agenten Vorgänge ausführen und Operation synchronisieren. Um die Leistung privater Agenten zu verbessern, folgen Sie den Anleitungen auf dieser Seite. (Bei erheblichen Leistungsproblemen wenden Sie sich an den Jitterbit-Support.)

Leistungsoptimierung für private Agenten

In diesem Abschnitt finden Sie einen empfohlenen Konfigurationssatz zur Verbesserung der Leistung privater Agenten mit überdurchschnittlich hoher Arbeitslast.

Notiz

Der Satz basiert auf den Ergebnissen der internen Tests von Jitterbit und gilt für private Agentenversionen 11.22 oder höher, die mit einem PostgreSQL 14-Datenbankserver auf einer Instanz mit mindestens 16 GB RAM ausgeführt werden.

Um diesen Konfigurationssatz zu verwenden, konfigurieren Sie Ihre privaten Agentkomponenten gemäß der folgenden Tabelle:

Komponente Konfigurationsdatei Speicherort (Windows) Speicherort (Docker/ Linux)
Tomcat-Server jitterbit-agent-config.properties JITTERBIT_HOME\Resources\ JITTERBIT_HOME/Resources/
Privater Agent jitterbit.conf JITTERBIT_HOME JITTERBIT_HOME
Apache-Multiprozessormodul httpd-mpm.conf JITTERBIT_HOME\Apache\conf\extra\ JITTERBIT_HOME/apache/conf/extra/
Dateibereinigungsdienst CleanupRules.xml JITTERBIT_HOME JITTERBIT_HOME
Java-Virtual-Machine Java-Systemsteuerung /etc/sysconfig/jitterbit

JITTERBIT_HOME ist standardmäßig das Installationsverzeichnis C:\Program Files\Jitterbit Agent\ unter Microsoft Windows, /opt/jitterbit/ auf Docker und Linux.

Wichtig

Wenden Sie alle Teile dieses Konfigurationssatzes an, nicht nur einige davon. Starten Sie den privaten Agenten neu, nachdem Sie alle Änderungen vorgenommen haben.

Tomcat-Serverkonfiguration

Bearbeiten jitterbit-agent-config.properties und legen Sie die folgenden Werte fest:

1
2
agent.heart.beat.interval = 3
max.concurrent.requests = 200
  • Zeile 1: Empfohlen für Microsoft Azure-Hosts, um eine vorzeitige Beendigung der WebSocket-Verbindung zu vermeiden.
  • Zeile 2: Erhöhen Sie die maximale Anzahl an Anfragen.

Speicherzuweisung für die Java Virtual Machine

Erhöhen Sie die Werte für den privaten Agenten Java VM anfängliche und maximale Speicherzuweisung (Java-Parameter -Xms Und -Xmx) auf denselben Wert gemäß der folgenden Formel:

\((Gesamt\ Verfügbarer\ Host\ Speicher - 4) \mal 0,75\)

Private Agentkonfiguration

Bearbeiten jitterbit.conf und legen Sie in jedem Abschnitt die folgenden Werte fest:

  1. Internes Pooling aktivieren:

    [DbInfo]
    UseInternalPooling = true
    
  2. Anzahl der Arbeitsthreads erhöhen:

    [ProcessEngine]
    MaxNumberOfWorkerThreads = X
    

    wobei \(X = 4 \mal\) (Anzahl der vCPUs oder Kerne).

    Hinweis

    Ein Wert von auto Standardmäßig ist \(2 \mal\) die Anzahl der vCPUs/Kerne.

  3. Ändern Sie die Werte für Folgendes:

    • MaxOperationStackDepth: Maximale Anzahl synchroner Operationen, die zur Ausführung in die Warteschlange gestellt werden können (Standardwert 50).
    • MaxAsyncOperationChainLength: Maximale Anzahl von untergeordneten asynchronen Operationen, die erzeugt werden können (Standardwert 50).
    [OperationEngine]
    MaxOperationStackDepth = 200
    MaxAsyncOperationChainLength = 200
    
  4. Protokollierung aktivieren:

    [APIOperation]
    EnableLogging = true
    
  5. Ändern Sie das Dateibereinigungsintervall:

    [FileCleanup]
    FrequencyInHours = 6.0
    
  6. Erhöhen Sie die maximale Anzahl von HTTP-Verbindungen im Pool und die maximale Anzahl von Verbindungen pro Route:

    [HttpConnectionPoolLocal]
    MaxConnections = 200
    MaxConnectionsPerRoute = 200
    
  7. Fügen Sie den folgenden Abschnitt und die folgenden Werte hinzu. Dies verhindert einen großen Rückstand bei der Protokollsynchronisierung und verbessert die Effizienz des Protokollversenders:

    [LogSync]
    MaxRecordsToSync = 2000
    MinRecordsToSync = 2000
    

Konfiguration des Apache-Multiprocessing-Moduls

Legen Sie folgende Werte in den <IfModule mpm_event_module> Abschnitt des httpd-mpm.conf Datei:

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

Bereinigungsregeln

Überprüfen und bearbeiten Sie die Regeln für den Dateibereinigungsdienst.

Leistungsoptimierung für die Umgebungssynchronisierung

Beim einsetzen an Integration Studio oder Design Studio Projekt, die Umfeld des Projekts ist gesperrt, während Daten zwischen den Harmony Cloud-Servern und allen privaten Agenten in der Agentengruppe synchronisiert werden. Während eine Umfeld gesperrt ist, werden keine Vorgänge verarbeitet. Um zu vermeiden, dass dieses Verhalten die Ausführung Ihrer Projekte beeinträchtigt, befolgen Sie die folgenden Tipps:

  • Reduzieren Sie die Größe von Projekten:

    Die einsetzen und Synchronisierung großer Projekte dauert länger. Um die Größe von Projekten zu reduzieren, gehen Sie wie folgt vor:

    • Minimieren Sie die Anzahl der Vorgänge.

    • Verwenden Sie bei Transformations nur die Felder, die Sie benötigen.

    • Löschen Sie nicht verwendete Komponenten.

  • Reduzieren Sie die Anzahl der Projekte pro Umfeld:

    Während der Umfeld ist die gesamte Umfeld gesperrt. Um die Auswirkungen zu reduzieren, gehen Sie wie folgt vor:

    • Nutzen Sie mehrere Umgebungen und verteilen Sie Ihr Projektportfolio gleichmäßig auf diese.

    • Bewahren Sie Hochverfügbarkeitsprojekte (HA) und Nicht-HA-Projekte in getrennten Umgebungen auf.

  • Bei schwacher Auslastung bereitstellen:

    Um die Auswirkungen der Synchronisierungszeiten auf Produktionssysteme zu reduzieren, planen Sie Ihre Projektbereitstellungen so, dass sie außerhalb der Spitzenzeiten ausgeführt werden.

  • Synchronisierungszeiten überwachen:

    Um die Synchronisierungszeiten der Umfeld zu überwachen, scannen Sie die JITTERBIT_HOME/log/jitterbit-agent.log für den Text 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
    

    Im obigen Beispiel lauten die Protokollinformationen wie folgt:

    Beschreibung Beispiel
    Umgebungs-ID 227680
    Agent-ID 171230
    Synchronisierungsdauer in Millisekunden 4388
    Anzahl der TranDb Zeilen aktualisiert 1