WORKER-THREADS
Mit der Konfigurationseinstellung WORKERTHREADS können Sie die Anzahl der im Threadpool für parallele Essbase-Vorgänge verfügbaren Threads erhöhen oder verringern.
Syntax
WORKERTHREADS [appname] value-
appname (optional) – Anwendungsname. Wenn Sie keine Anwendung angeben, gilt die angegebene Anzahl von Threads für alle Anwendungen.
-
value: Die Anzahl von Threads, die im Threadpool verfügbar gemacht werden sollen. Der Mindestwert ist 5. Der Höchstwert beträgt 2048. Der Standardwert ist die Hälfte des SERVERTHREADS-Werts, wenn die Einstellung WORKERTHREADS nicht vorhanden ist.
Beschreibung
In der Vergangenheit haben Essbase dynamisch erstellte Threads für parallele Vorgänge wie parallele Berechnung, paralleles Laden von Daten und parallele Neustrukturierung erstellt. Ab Release 11.1.2.4.000 erstellen die folgenden parallelen Vorgänge jedoch keine Threads dynamisch, sondern verwenden stattdessen eine festgelegte Anzahl von Threads aus einem vorab erstellten Threadpool:
-
Parallele Berechnung mit CALCPARALLEL oder FIXPARALLEL
-
Paralleles Laden von Daten für Aggregate Storage- und Block Storage-Cubes
-
Paralleler Export, für Blockspeicher-Cubes
-
Parallele Restrukturierung
Richtlinien für Thread-Vorgänge
Oracle empfiehlt je nach Systemarchitektur die folgenden Einstellungen.
Tabelle 2-1: Richtlinien für Thread-Vorgänge
| Parameter | 64-Bit (16 Kerne) | 64-Bit (32 Kerne) | 64-Bit (16 Kerne) und zwei Würfel | Oracle Exalytics In-Memory Machine, 40-Kern, X2-4 | Oracle Exalytics In-Memory Machine, SPARC 128-Kern | Oracle Exalytics In-Memory Machine, 60-Kern, X4-4 |
|---|---|---|---|---|---|---|
| SERVERTHREADS | 100Fußnote 1 | 100Fußnote 1 | 100Fußnote 1 | 100Fußnote 1 | 200Fußnote 1 | 120Fußnote 1 |
| WORKER-THREADS | 50 | 50 | 50 | 50 | 100 | 60 |
| AGENT-THREADS | 30Fußnote 1 | 30Fußnote 1 | 30Fußnote 1 | 30Fußnote 1 | 30Fußnote 1 | 30Fußnote 1 |
| DLTHREADSPREPARE | 2 | 2 | 2 | 2 Fußnote 2 | 2 Fußnote 2 | 2 Fußnote 2 |
| DLTHREADSWRITE | 2Fußnote 3 | 2Fußnote 3 | 2Fußnote 3 | 2Fußnote 3 | 2Fußnote 3 | 2Fußnote 3 |
| EXPORTTHREADSFußnote 4 | 8 | 8 | 8 | 40 | 40 | 40 |
| RESTRUKTURIERUNGS-THREADS | 4 | 4 | 4 | 8 | 8 | 8 |
| CALCPARALLEL maximalFußzeile 5 | 8 | 8 | 8 | 32Fußnote 6 | 32 | 32Fußnote 6 |
| FIXPARALLEL maximalFußzeile 7 | 8 | 8 | 8 | 32Fußnote 6 | 32 | 32Fußnote 6 |
Fußnote 1
Kann basierend auf Partitionierung und gleichzeitigem Zugriff angepasst werden
Fußnote 2
24 auf Aggregate Storage
Fußnote 3
1 bei Verwendung von .txt load
Fußnote 4
Zusätzlich zum Festlegen von EXPORTTHREADS müssen Sie mehrere Datendateien im Datenexport angeben
Fußnote 5
SET CALCPARALLEL muss im Berechnungsskript festgelegt werden
Fußnote 6
16, wenn drei oder mehr Cubes nebenläufige Berechnungen ausführen
Fußnote 7
FIXPARALLEL muss im Berechnungsskript festgelegt werden
Hinweise:
-
WORKERTHREADS ist eine Konfigurationseinstellung, mit der die Anzahl der im Threadpool verfügbaren Threads bearbeitet wird. Unabhängig davon, ob dieser Verfügbarkeitsschwellenwert explizit in der Konfiguration festgelegt wird oder auf den Standardwert
SERVERTHREADS/2gesetzt wird, senkt Essbase implizit die Parallelität des angeforderten Vorgangs, wenn die effektive Einstellung weniger ist, als von einem angeforderten parallelen Vorgang gefordert wird, so dass er in die Parameter des Threadpools passt.Beispiel: Laden von Daten:
Das Konzept einer Pipeline ist für Essbase-Dataloads relevant. Eine Pipeline ist eine Reihe von Datenverarbeitungselementen im Speicher, die seriell oder parallel ausgeführt werden können. Ein Essbase-Dataload-Vorgang verwendet eine Pipeline, die aus 5 Phasen besteht. Aus diesem Grund benötigen alle Dataload-Vorgänge mindestens 5 Threads.
Wenn Sie DLTHREADSPREPARE oder DLTHREADSWRITE verwenden, wird die erforderliche Mindestanzahl an Dataload-Threads erhöht. Beispiel: Wenn Sie DLTHREADSPREPARE auf 4 und DLTHREADSWRITE auf 2 setzen, benötigen Sie 9 Threads (die minimalen 5 Threads plus die Erhöhung von 4).
Wenn die Anzahl der für alle Pipelines angeforderten Threads wie im vorherigen Fall 9 ist, WORKERTHREADS jedoch auf nur 8 festgelegt ist, setzt Essbase DLTHREADSPREPARE und DLTHREADSWRITE implizit auf 1, und der Dataload wird mit einer Gesamtthreadanforderung von 5 (Minimum und Standard) ausgeführt.
-
Wenn Sie eine parallele Berechnung, einen parallelen Export oder eine parallele Neustrukturierung ausführen, werden diese Vorgänge parallel ausgeführt, wobei die Anzahl der verfügbaren Threads nicht überschritten wird.
Beispiel:
-
Wenn WORKERTHREADS auf 8 gesetzt ist und Sie CALCPARALLEL 16 versuchen, wird die parallele Berechnung als CALCPARALLEL 8 ausgeführt.
-
Wenn WORKERTHREADS auf 5 gesetzt ist und Sie EXPORTTHREADS 12 versuchen, wird der parallele Export als EXPORTTHREADS 5 ausgeführt.
-
Wenn WORKERTHREADS auf 16 gesetzt ist und Sie RESTRUCTURETHREADS 32 versuchen, wird die parallele Neustrukturierung als RESTRUCTURETHREADS 16 ausgeführt.
-
-
Wenn Sie nebenläufige parallele Vorgänge für dieselbe Anwendung ausführen, wird die gesamte Parallelität durch die Anzahl der Threads im Threadpool begrenzt. Beispiel: Wenn Sie WORKERTHREADS auf 16 setzen und zwei gleichzeitige Anforderungen von CALCPARALLEL 16 ausführen, verwenden die beiden Berechnungsanforderungen die 16 Threads gemeinsam. Die Berechnungen werden mit bis zu 16 Threads ausgeführt, aber da sie den Threadpool von 16 gemeinsam nutzen, werden sie mit fast der Hälfte der angeforderten Kapazität ausgeführt.
-
Wenn mehrere Cubes in einer Anwendung vorhanden sind, empfiehlt Oracle, WORKERTHREADS etwas höher einzustellen als die parallelen Threads, die Sie für einen Cube benötigen. Beispiel: Wenn WORKERTHREADS auf 16 und die Anzahl der CPUs auf dem System auf 16 eingestellt ist, sollten Sie den CALCPARALLEL-Wert auf weniger als 16 setzen.
-
Wenn Cubes auf verschiedenen Servern sich mit @XREF oder @XWRITE referenzieren, stellen Sie sicher, dass der Quell-Cube des Querverweises eine höhere Anzahl von SERVERTHREADS als von parallelen Berechnungsthreads (CALCPARALLEL oder FIXPARALLEL) aufweist.
-
Beim Threadpooling für parallele Vorgänge sind erhöhte Ressourcen erforderlich, um eine Essbase-Anwendung zu starten. Wenn beim Hochfahren der Fehler
Unable to Request Server Threadauftritt, passen Sie die Betriebssystemeinstellungen an, mit denen die Anzahl der Threads pro Prozess und die Gesamtanzahl der Threads im System gesteuert wird (z.B. unter Linux, optimieren Sie nproc mit ulimit).
Beispiel
WORKERTHREADS Sample 32Siehe auch
FIXPARALLEL...ENDFIXPARALLEL (Berechnungsbefehlsblock)