工作繫線

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