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.
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. |
Der Wert für ThreadQueue.<name>.maxRunning muss kleiner sein als der Wert für ThreadPool.maxSize. |