Zum Inhalt springen

Optimieren und die Leistung von Jitterbit-Privatagenten verbessern

Einführung

Da Projekte größer und komplexer werden, können private Agenten länger für die Ausführung von Operationen und die Synchronisierung von Betriebsdaten benötigen. Um die Leistung privater Agenten zu verbessern, folgen Sie den Anleitungen auf dieser Seite. (Bei erheblichen Leistungsproblemen kontaktieren Sie bitte den Jitterbit-Support.)

Leistungsoptimierung privater Agenten

Dieser Abschnitt bietet eine empfohlene Konfiguration, um die Leistung privater Agenten zu verbessern, die überdurchschnittliche Arbeitslasten erfahren.

Hinweis

Das Set basiert auf den Ergebnissen interner Tests von Jitterbit und gilt für private Agenten-Versionen 11.22 oder höher, die mit einem PostgreSQL-Datenbankserver auf einer Instanz mit mindestens 16 GB RAM ausgeführt werden.

Um dieses Konfigurationsset zu verwenden, konfigurieren Sie Ihre Komponenten des privaten Agenten 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
Dateireinigungsdienst CleanupRules.xml JITTERBIT_HOME JITTERBIT_HOME
Java Virtual Machine Java-Systemsteuerung /etc/sysconfig/jitterbit

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

Wichtig

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

Tomcat-Serverkonfiguration

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

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 von Anfragen.

Speicherzuweisung für die Java-virtuelle Maschine

Erhöhen Sie die Werte für die private Agenten Java-VM-Initial- und Maximalspeicherzuweisung (Java-Parameter -Xms und -Xmx) auf denselben Wert gemäß der folgenden Formel:

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

Konfiguration des privaten Agenten

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

  1. Aktivieren Sie internes Pooling:

    [DbInfo]
    UseInternalPooling = true
    
  2. Erhöhen Sie die Anzahl der Worker-Threads:

    [ProcessEngine]
    MaxNumberOfWorkerThreads = X
    

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

    Hinweis

    Ein Wert von auto entspricht standardmäßig \(2 \times\) der Anzahl der vCPUs/Kerne.

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

    • 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 erstellt werden können (Standardwert 50).

    [OperationEngine]
    MaxOperationStackDepth = 200
    MaxAsyncOperationChainLength = 200
    
  4. Ändern Sie das Intervall für die Dateireinigung:

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

    [HttpConnectionPoolLocal]
    MaxConnections = 200
    MaxConnectionsPerRoute = 200
    
  6. Bearbeiten Sie die Datei jitterbit-agent-config.properties und setzen Sie:

    max.concurrent.requests=100
    

    Wichtig

    Setzen Sie max.concurrent.requests nicht über 100. Dies setzt den Wert auf den Standardwert von 16 zurück.

  7. Bearbeiten Sie die Datei httpd.conf und setzen Sie:

    ThreadsPerChild 101
    

Cleanup rules

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

Environment sync performance tuning

Wenn Sie ein Studio- oder Design-Studio-Projekt bereitstellen, wird die Umgebung des Projekts gesperrt, während die Daten zwischen den Harmony-Cloud-Servern und allen privaten Agenten in der Agentengruppe synchronisiert werden. Während eine Umgebung gesperrt ist, werden keine Operationen verarbeitet. Um zu vermeiden, dass dieses Verhalten die Ausführung Ihrer Projekte beeinträchtigt, wenden Sie die folgenden Tipps an:

  • Reduzieren Sie die Größe der Projekte:

    Große Projekte benötigen länger für die Bereitstellung und Synchronisierung. Um die Größe der Projekte zu reduzieren, tun Sie Folgendes:

    • Minimieren Sie die Anzahl der Operationen.

    • Verwenden Sie in Transformationen nur die benötigten Felder.

    • Löschen Sie ungenutzte Komponenten.

  • Reduzieren Sie die Anzahl der Projekte pro Umgebung:

    Während der Umgebungsynchronisierung ist die gesamte Umgebung gesperrt. Um die Auswirkungen hiervon zu reduzieren, tun Sie Folgendes:

    • Verwenden Sie mehr Umgebungen und verteilen Sie Ihr Projektportfolio gleichmäßig auf diese.

    • Halten Sie hochverfügbare (HA) Projekte und nicht-HA Projekte in separaten Umgebungen.

  • Bereitstellung während Zeiten mit geringer Auslastung:

    Um die Auswirkungen der Synchronisierungszeiten auf Produktionssysteme zu reduzieren, planen Sie Ihre Projektbereitstellungen für Zeiten außerhalb der Hauptnutzungszeiten.

  • Überwachen Sie die Synchronisierungszeiten:

    Um die Synchronisierungszeiten der Umgebung zu überwachen, scannen Sie die Datei JITTERBIT_HOME/log/jitterbit-agent.log nach dem Text environment-deploy:

    Beispiel für einen Protokolleintrag
    2024-07-30 15:54:24 environment-deploy-sync-thread-thread-1  INFO org.jitterbit.integration.server.messaging.agent.deploysync.SynchronizeAgent:620 - Agentensynchronisierung für Umgebung 227680 und Agentengruppe ID 171230 abgeschlossen um 18:54:24,667 Dauer in MS: 4388 Zeilen aktualisiert: 1 von Thread: 33 Name environment-deploy-sync-thread-thread-1
    

In dem obigen Beispiel sind die Protokollinformationen wie folgt:

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