Einführung / Konfiguration des FirstSpirit-Servers / Konfigurationsdateien (FirstSpirit-Server) / FirstSpirit-Server (fs-server.conf) / Thread Queues

Bereich Thread Queues

###########################
# Thread Queues:
# - LOW: Queue for resource-intensive tasks.
# - DEFAULT: Default queue for default tasks.
# - BOUNDED: Bounded queue with rejection strategy.
#  (queueCapacity: -1 = unbounded, 0 = no queueing allowed)
# Attributes:
# - maxRunning   maxmimum numbers of running tasks.
# - queueCapacity queue capacity (-1 = unbounded, 0 = no queueing # allowed).
###########################
ThreadQueue.LOW.maxRunning=2
ThreadQueue.LOW.queueCapacity=128
 
# if left empty the value is set to (#cores * 6)
ThreadQueue.DEFAULT.maxRunning=
# if left empty the value is set to (#cores * 20)
ThreadQueue.DEFAULT.queueCapacity=
 
# if left empty the value is set to (#cores * 6)
ThreadQueue.BOUNDED.maxRunning=
# if left empty the value is set to (#cores * 16)
ThreadQueue.BOUNDED.queueCapacity=

Die Ausführung von Tasks erfolgt über den ExecutionManager, der eine Vielzahl von unterschiedlich klassifizierten Queues verwaltet (siehe ExecutionManager). Einige der Queues können über Parameter die Anzahl der aktiven Tasks einschränken. Für Queues mit der Klassifizierung BOUNDED kann darüber hinaus die Aufnahmekapazität der Queue eingeschränkt werden.

ThreadQueue.LOW.maxRunning

Von den Ressource-intensiven Tasks innerhalb dieser Queue sollte jeweils nur eine geringe Anzahl parallel ausgeführt werden. Die Anzahl der Tasks, die gleichzeitig ausgeführt werden dürfen, kann über den Parameter maxRunning konfiguriert werden (Standardwert ist 2 Threads).

ThreadQueue.DEFAULT.maxRunning

Die Anzahl der parallel ausführbaren Tasks dieser Queue können ebenfalls über den Parameter maxRunning eingeschränkt werden. Da diese Tasks nicht so ressourcen-intensiv sind, kann der Wert hier höher liegen, als der in ThreadQueue.LOW.maxRunning definierte (Standardwert ist 25 Threads).

ThreadQueue.DEFAULT.queueCapacity

Die Aufnahmekapazität einer mit DEFAULT klassifizierten Queue kann eingeschränkt werden.

ThreadQueue.BOUNDED.maxRunning

Die mit BOUNDED klassifizierte Queue kann über zwei Parameter konfiguriert werden. Über den Parameter maxRunning kann die Anzahl der aktiven Tasks begrenzt werden (Standardwert ist 25 Threads).

ThreadQueue.BOUNDED.queueCapacity

Außerdem kann die Aufnahmekapazität einer mit BOUNDED klassifizierte Queue über den Parameter queueCapacity eingeschränkt werden. Ist der unter queueCapacity konfigurierte Wert erreicht, werden weitere Tasks vom Server zurückgewiesen. Das bedeutet, bei hoher Belastung des Servers wird nur eine bestimmte Anzahl von Tasks in die Queue gestellt (Standardwert ist 50 Tasks) (wovon die unter maxRunning definierte Anzahl direkt abgearbeitet wird), alle weiteren Tasks werden vorerst zurückgewiesen und an eine interne Rejection-Strategie überstellt.

Werden für die Parameter

  • ThreadQueue.DEFAULT.maxRunning
  • ThreadQueue.DEFAULT.queueCapacity
  • ThreadQueue.BOUNDED.maxRunning
  • ThreadQueue.BOUNDED.queueCapacity

keine expliziten Werte angegeben, werden automatisch Werte verwendet, die abhängig von der Anzahl der verfügbaren Prozessoren sind.

Wichtig Die Werte der Parameter ThreadQueue.LOW.maxRunning und ThreadQueue.LOW.queueCapacity sind nicht abhängig von der Anzahl der Rechenkerne und können nicht mit „leeren“ Werten überschrieben werden.
Wichtig Der Wert für ThreadQueue.<name>.maxRunning muss kleiner sein als der Wert für ThreadPool.maxSize.

© 2005 - 2022 Crownpeak Technology GmbH | Alle Rechte vorbehalten. | FirstSpirit 2023.1 | Datenschutz