工作繫線
WORKERTHREADS 組態設定可讓您增加或減少繫線集區中可用於平行 Essbase 作業的繫線數目。
語法
WORKERTHREADS [appname] value-
appname (選擇性) - 應用程式名稱。如果您未指定應用程式,指定的繫線數目會套用至所有應用程式。
-
value — 可在繫線集區中使用的繫線數目。最小值為 5。最大值為 2048。如果 WORKERTHREADS 設定不存在,則預設值為 SERVERTHREADS 值的一半。
描述
過去, Essbase 會為平行計算、平行資料載入及平行重新建構等平行作業動態建立執行緒。不過,從 11.1.2.4.000 版開始,下列平行作業不會動態建立繫線,而是使用來自預先建立之繫線集區的一組繫線數目:
-
平行計算,使用 CALCPARALLEL 或 FIXPARALLEL
-
聚總儲存和區塊儲存立方體的平行資料載入
-
平行匯出,適用於區塊儲存立方體
-
平行重組結構
執行緒作業的準則
Oracle 會根據您的系統架構建議下列設定值。
表格 2-1 繫線作業準則
| Parameter - 參數 | 64 位元 (16 個核心) | 64 位元 (32 個核心) | 64 位元 (16 個核心) 和兩個立方體 | Oracle Exalytics In-Memory Machine,40 核心,X2-4 | Oracle Exalytics In-Memory Machine,SPARC 128 核心 | Oracle Exalytics In-Memory Machine,60 核心,X4-4 |
|---|---|---|---|---|---|---|
| 伺服器繫線 | 100 註腳 1 | 100 註腳 1 | 100 註腳 1 | 100 註腳 1 | 200 註腳 1 | 120 註腳 1 |
| 工作繫線 | 50 | 50 | 50 | 50 | 100 | 60 |
| 代理程式繫線 | 30 註腳 1 | 30 註腳 1 | 30 註腳 1 | 30 註腳 1 | 30 註腳 1 | 30 註腳 1 |
| 繁體中文 | 2 | 2 | 2 | 2 註腳 2 | 2 註腳 2 | 2 註腳 2 |
| 下載 % 1 | 2 註腳 3 | 2 註腳 3 | 2 註腳 3 | 2 註腳 3 | 2 註腳 3 | 2 註腳 3 |
| EXPORTTHREADS 第四腳 | 8 | 8 | 8 | 40 | 40 | 40 |
| 重建討論串 | 4 | 4 | 4 | 8 | 8 | 8 |
| CALCPARALLEL 最大值註腳 5 | 8 | 8 | 8 | 32 註腳 6 | 32 | 32 註腳 6 |
| FIXPARALLEL 最大值註腳 7 | 8 | 8 | 8 | 32 註腳 6 | 32 | 32 註腳 6 |
Footnote 1
可能需要根據分割和並行進行調整
Footnote 2
24 合計儲存
Footnote 3
使用 .txt 載入時為 1
Footnote 4
除了設定 EXPORTTHREADS 之外,您還必須在資料匯出中指定多個資料檔。
Footnote 5
必須在計算命令檔中設定 SET CALCPARALLEL
Footnote 6
16,如果有三個以上的立方體正在執行並行計算
Footnote 7
必須在計算命令檔中設定 FIXPARALLEL
備註
-
WORKERTHREADS 是一種組態設定,可操控繫線集區中可用的繫線數目。是否在組態中明確設定此可用性臨界值,或保留為其預設值
SERVERTHREADS/2(如果有效設定小於要求之平行作業的需求),則 Essbase 會隱含地降低要求之作業的平行程度,使其符合繫線集區的參數。例如,請考慮載入資料:
業務進程的概念與 Essbase 資料載入相關。管線是記憶體中可能以序列或平行方式執行的一系列資料處理元素。Essbase 資料載入作業使用由 5 個階段組成的管線。因此,所有資料載入作業都需要最少 5 個執行緒。
如果您使用 DLTHREADSPREPARE 或 DLTHREADSWRITE,它會增加所需的資料載入執行緒數目下限。例如,如果您將 DLTHREADSPREPARE 設定為 4,並將 DLTHREADSWRITE 設定為 2,則需要 9 個執行緒 (最少 5 個,加上增加 4 個)。
如果針對所有管線要求的繫線數目為 9 (如先前情況所示),但 WORKERTHREADS 設為僅 8,則 Essbase 會隱含地將 DLTHREADSPREPARE 與 DLTHREADSWRITE 設為 1,而資料載入執行的繫線需求總計為 5 (最小值與預設值)。
-
同樣地,如果您執行平行計算、平行匯出或平行重新建構,這些作業會以平行方式執行,而不會超過可用的繫線數目。
舉例而言:
-
如果 WORKERTHREADS 設為 8,而您嘗試 CALCPARALLEL 16,則平行計算會以 CALCPARALLEL 8 執行。
-
如果 WORKERTHREADS 設為 5,而您嘗試 EXPORTTHREADS 12,則平行匯出會以 EXPORTTHREADS 5 執行。
-
如果 WORKERTHREADS 設為 16,而您嘗試 RESTRUCTURETHREADS 32,則平行重新建構會以 RESTRUCTURETHREADS 16 執行。
-
-
如果您在同一個應用程式上執行並行平行作業,則平行程度總計會受繫線集區中的繫線數目限制。例如,如果您將 WORKERTHREADS 設為 16,並執行兩個 CALCPARALLEL 16 的並行要求,則兩個計算要求會共用 16 個執行緒。計算將使用最多 16 個執行緒來執行,但因為它們共用 16 個執行緒集區,所以它們在要求的容量接近一半處執行。
-
如果您在應用程式內有多個立方體,Oracle 建議將 WORKERTHREADS 設定為稍微高於一個立方體所需的平行繫線。例如,如果 WORKERTHREADS 設為 16,且系統上的 CPU 數目為 16,則您應將 CALCPARALLEL 值設為小於 16。
-
如果不同伺服器上的立方體使用 @XREF 或 @XWRITE 互相參照,請確定交叉參照的來源立方體具有比平行計算繫線 (CALCPARALLEL 或 FIXPARALLEL) 高的 SERVERTHREADS 數目。
-
使用平行作業的執行緒集區功能,需要增加的資源才能啟動 Essbase 應用程式。如果您在啟動時遇到
Unable to Request Server Thread錯誤,請調整作業系統設定值,以控制每個處理作業的繫線數目以及系統中的繫線總數 (例如,在 Linux 上,使用 ulimit 調整 nproc)。
範例
WORKERTHREADS Sample 32另請參閱
FIXPARALLEL...ENDFIXPARALLEL (計算命令區塊)