Betrieb

Betrieb in einer Container-Umgebung

Docker, Kubernetes & OpenShift

jadice® web toolkit verwaltet intern mehrere Thread-Pools für das parallele Abarbeiten von Tasks. Die Größe der Thread-Pools richtet sich dabei, sofern nicht explizit anders definiert, nach der Anzahl der im System vorhandenen Prozessorkerne. Unter Docker (und dadurch auch in Kubernetes und OpenShift) führt die Berechnung zu einem unerwarteten Ergebnis, wenn für den Container kein CPU-Limit definiert wurde. Die JVM liefert in diesem Fall bei der Abfrage der Prozessorkerne die Zahl 1 zurück, sodass die Thread-Pools mit nur 2 Threads gestartet werden. Möglicherweise verwenden auch andere Module außerhalb des jadice® web toolkit einen ähnlichen Mechanismus, welcher ebenfalls zu einem unerwarteten Ergebnis führen kann. Es wird daher empfohlen den Container mit einem CPU-Limit zu versehen. Weiterführende Informationen finden Sie in dem Knowledge-Base-Artikel Thread Pools and Concurrency.

JMX

Cache

Der Cache des jadice® web toolkit lässt sich mit JMX überwachen, das Aufzeichnen der Metriken muss jedoch erst aktiviert werden. Die Details zum Cache lassen sich aus dem Referenzhandbuch der jadice® document platform entnehmen.

Tile-Rendering

Der Thread-Pool für das Rendering von Kacheln ist ebenfalls per JMX überwachbar. Die exponierten Metriken sind:

MaximumPoolSize

Die höchste Anzahl an Threads, die der Tile-Rendering-Thread-Pool annehmen kann.

PoolSize

Die aktuelle Anzahl an Threads, die der Tile-Rendering-Thread-Pool hat.

CorePoolSize

Die minimale Anzahl an Threads, die für das Tile-Rendering immer bereit stehen (diese Threads sind immer alive und bekommen keinen Timeout etc.)

LargestPoolSize

Die höchste Anzahl an Threads, die bisher gleichzeitig aktiv waren.

ActiveCount

Die Anzahl an Threads, die aktuell Rendering-Tasks ausführen.

QueueSize

Die Anzahl an Rendering-Tasks, die sich in der Warteschlange zur Ausführung befinden.

PendingClientIds

Die IDs der Clients, die aktuell mehr Rendering-Tasks angefragt haben, als pro Client zulässig.

FuturesQueueSize

Die Anzahl an Rendering-Tasks für alle Clients, die aktuell mehr Rendering-Tasks angefragt haben, als pro Client zulässig (diese werden in einer eigenen Warteschlange verwaltet).

FuturesQueueSizeForClient

Die Anzahl an Rendering-Tasks für einen bestimmten Client, der aktuell mehr Rendering-Tasks angefragt hat, als pro Client zulässig.

[jadice web toolkit Version 5.10.38.8 : Dokumentation für Entwickler. Veröffentlicht: 2021-07-05]