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 |
|
- 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:
-
Internes Pooling aktivieren:
[DbInfo] UseInternalPooling = true
-
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. -
Ändern Sie die Werte für Folgendes:
MaxOperationStackDepth
: Maximale Anzahl synchroner Operationen, die zur Ausführung in die Warteschlange gestellt werden können (Standardwert50
).MaxAsyncOperationChainLength
: Maximale Anzahl von untergeordneten asynchronen Operationen, die erzeugt werden können (Standardwert50
).
[OperationEngine] MaxOperationStackDepth = 200 MaxAsyncOperationChainLength = 200
-
Protokollierung aktivieren:
[APIOperation] EnableLogging = true
-
Ändern Sie das Dateibereinigungsintervall:
[FileCleanup] FrequencyInHours = 6.0
-
Erhöhen Sie die maximale Anzahl von HTTP-Verbindungen im Pool und die maximale Anzahl von Verbindungen pro Route:
[HttpConnectionPoolLocal] MaxConnections = 200 MaxConnectionsPerRoute = 200
-
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 Textenvironment-deploy
:Example log entry2024-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 aktualisiert1