資料庫大小和效能

重要

這個版本的 Orchestrator 已終止支援。 我們建議您 升級至 Orchestrator 2022

資料庫大小調整是瞭解 System Center - Orchestrator 效能的關鍵。 Runbook 伺服器、Management 伺服器及 Web 元件等皆需要仰賴 Orchestrator 資料庫才能進行操作。 Orchestrator 部署的問題,可能是因為對資料庫中數據類型的瞭解不完整,以及如何加以管理。

由於 Runbook Designer 會與 Orchestrator 資料庫通訊 (透過 Management 伺服器),因此過低的資料庫效能將使此項通訊受到阻礙。

Orchestrator 操作員體驗是以兩個元件為基礎: 協調流程控制台 和Web服務。 Orchestration Console 是仰賴 Web Service 連線至 Orchestrator 資料庫的 Silverlight 應用程式。 Web Service 則是連線到資料庫的 IIS 應用程式。 因此,Web 服務和 協調流程控制台 都相依於 Orchestrator 資料庫的效能。

此外,雖然 Orchestration Console 需仰賴 Web Service,但它也有其功能獨有的邏輯,可作為使用者介面及本身之效能特性。

設定資料和記錄檔資料

概括而言,Orchestrator 資料庫包含兩種數據:

設定資料

Orchestrator 基礎結構包含組態數據。 由於這種類型的數據的記憶體需求很小,所以此數據在資料庫成長內容中並不相關。

記錄檔資料

Orchestrator 會建立不同類型的記錄數據,這些記錄數據都可以在 Runbook Designer 中檢視及管理。 此數據的記憶體需求可能會因大小而異,而且可能很大。

下表列出可以儲存在 Orchestrator 資料庫中的記錄檔資料類型。 Orchestrator 也會將數據儲存在資料庫外部的個別記錄檔 (中,) 外部進行稽核線索和追蹤。 如需所有記錄檔資料類型的詳細資訊,請參閱 Orchestrator Logs

記錄檔資料的類型 在 Runbook Designer 中的位置 是否受記錄檔清除管理?
Runbook 記錄檔 [記錄檔] 和 [記錄歷程] History 索引標籤 Yes
活動 (平台) 事件 [事件] 索引標籤 No
稽核歷程 [稽核歷程] 索引標籤 No

平台程式碼和網域程式碼

Orchestrator Runbook 活動包含兩種不同的程式代碼類型:

  • 平台程式碼

    這是大部分活動共用的常見程序代碼,可用來執行 Orchestrator 活動所執行的一般工作。 平台程式碼可產生一般已發佈資料。

  • 網域程式碼

    針對每個活動執行特定動作的各種工作,通常不會與 Orchestrator 平臺本身相關聯。 平台程式代碼與網域程式代碼之間可能會有絕佳的變化。

針對特定活動產生的記錄資料可包含具有單一值或多重值的資料元素。 每個活動都會產生單一值資料的單筆記錄。 網域程式碼則可產生多重值資料的多筆記錄,因而負責決定活動要對從先前活動接收的一般已發佈資料採取何種動作。

在本質上,Orchestrator Runbook 是專為在網域程式碼個別元素之間傳遞資料而設計。 此外,網域程式碼也可選擇性地產生活動特定已發佈資料。

所有 Runbook 在執行由網域程式碼和平台程式碼組成的活動、重複執行工作流程及建立分支時,顯現出來的本質十分相似。 建立分支是指 Runbook 呼叫其他 Runbook 來執行特定工作。 第一次叫用 Runbook 時,它是由單一線程所組成。 當這個執行緒遇到其連結需要分支的 Runbook 活動時,系統會建立額外的執行緒,使每個分支都有一個執行緒。 每個執行緒都會從建立分支的活動提取一般已發佈資料,以作為輸入。 這些資料將向後交互關聯至 Runbook 中先前的活動,以更新活動訂閱的一般已發佈資料。

網域程式碼對資料庫效能的影響可能比分支所產生的多重執行緒作業還高。 這是因為網域程式碼可能會產生大量的活動特定已發佈資料。

記錄選項

Runbook 之 [內容] 上的 [記錄] 索引標籤可讓您選擇性地儲存記錄項目。 預設記錄 一詞表示不選取兩個已發佈資料選項,如此一來,每個活動會產生 524 位元組的資料。 記錄選項提供兩種類別的一般已發佈資料:

  • 一般已發佈資料

    所有活動通用的一組資料項目。 如需清單,請參閱 Runbook 記錄選項

    此記錄選項會讓每個活動產生 6082 位元組的資料。

  • 活動特定已發行資料

    網域程式碼選擇性建立的一組活動特定資料。

    除了特定活動所記錄的位元組之外,此記錄選項還會產生 6082 位元組的資料。

    提示

    此選項主要作為偵錯用途。 保留未勾選狀態可抑制記錄成長。

設定記錄選項可能會大幅影響效能並加速資料庫成長。 請試想以下案例:執行相同的 Runbook 活動兩次,第一次採用預設層級的資料記錄 (未選取已發佈資料選項),第二次則採用選取一般已發佈資料的設定。 網域程式碼的完成時間應該相同, 但平台程式碼的執行時間將會延長,因為它必須支援數量比只採用預設記錄還多出 12 倍的一般已發佈資料記錄。

清除記錄檔

Runbook Designer 中針對 [記錄清除] 功能指定的預設選項已設定為提供全新 Orchestrator 部署的最佳用戶體驗。 變更這些值可能會變更環境的效能特性,並應逐漸實作高水印,以便評估變更的效果。

如需自動和手動清除記錄的詳細資訊,請參閱 清除 Runbook 記錄

建立效能評定基準

若要建立簡單的 Runbook 來測試記錄成長,您可以使用標準活動 比較值 來建立 Orchestrator 環境的基準檢驗。

下列程式會建立 Runbook,以執行 比較值 活動 10,000 次。 比較值 是一個簡單的活動,其定義域程式代碼最少。 您可以在各種情況下叫用此 Runbook,以描述指定 Orchestrator 運行時間環境的整體效能。

建立可用來評定 Orchestrator 環境效能的 Runbook

  1. 建立新的 Runbook。

  2. 從 [標準活動] 調色盤新增 Compare Values 活動。 按兩下活動以進行設定。

  3. 選取 [ 一般 ] 索引標籤,並設定此活動來比較字串 (預設值) 。

  4. 選取 [詳細數據] 索引標籤,在 [測試] 方塊中輸入 STRING 值,然後選取為空白

  5. 選取 [完成 ] 以將更新儲存至活動。

  6. 在活動上按一下滑鼠右鍵並選取 [迴圈]

  7. 針對 [兩次嘗試的延遲間隔] 選取 [啟用] 核取方塊並輸入數字 0(零)。

  8. 選取 [ 結束] 索引標籤

  9. 變更預設的結束條件。 選取 [比較值],核取 [ 顯示一般已發佈數據 ] 複選框,然後選取 [迴圈:嘗試次數]。 選取 [確定 ] 以儲存此變更。

  10. 從更新的結束條件中選取 ,然後輸入數位 10000 (千) 。 選取 [確定 ] 以儲存此變更。

  11. 選取 [完成] 以儲存這些更新。

  12. 選取 [簽到],將變更儲存至 Orchestrator 資料庫。

此 Runbook 可用來實驗不同的 Orchestrator 設定。 例如,您可以建立效能評定 Runbook 來判斷四部部署在不同資料中心內的 Runbook 伺服器效能。

資料中心 記錄設定 平台程式碼執行時間 (毫秒) 毫秒/活動 擴充係數
位置 1 預設記錄 819 82 1.0 (參考)
位置 1 記錄一般已發佈資料 2012 201 2.5
位置 2 預設記錄 1229 123 1.5
位置 2 記錄一般已發佈資料 3686 369 4.5
位置 3 預設記錄 2457 426 3.0
位置 3 記錄一般已發佈資料 4422 442 5.4
位置 4 預設記錄 1474 147 1.8
位置 4 記錄一般已發佈資料 2654 265 3.2

請注意由記錄一般已發佈資料所造成平台效能大幅降低的現象。 最差的情況發生在位置 2 的一般已發佈資料記錄作業。 在表面上,這個現象似乎是明確而相關的結論。

不過請注意,這些圖表反映的是平台程式碼的負荷,不是網域程式碼。 網域程式代碼運行時間可能較長。 例如,Virtual Machine Manager 整合套件中的「從範本建立 VM」 活動可能會在建立 VM 時執行數分鐘之久。 展開上一個範例,請考慮 Runbook 活動的平台程式代碼成本,此活動需要 1 分鐘來執行 (1 分鐘 = 60,000 毫秒) ,不論位置為何。

資料中心 記錄設定 平台程式碼執行時間 (毫秒) 網域程式碼 % 平台程式碼 %
位置 1 預設記錄 819 98.6% 1.4%
位置 1 記錄一般已發佈資料 2012 96.7% 3.3%
位置 2 預設記錄 1229 98.0% 2.0%
位置 2 記錄一般已發佈資料 3686 93.9% 6.1%
位置 3 預設記錄 2457 95.9% 4.1%
位置 3 記錄一般已發佈資料 4422 92.6% 7.4%
位置 4 預設記錄 1474 97.5% 2.5%
位置 4 記錄一般已發佈資料 2654 95.6% 4.4%

這些資料所代表的意義逐漸成形。 在位置 2 啟用一般已發佈資料記錄的案例蟬聯效能表現最差的案例。 不過,平台程式碼和記錄作業僅佔總執行時間的 6%。 儘管如此,這個數字仍然偏高,因為表現最好的案例只佔了 1.4%。 基本上,此範例花在網域程式碼的時間比花在執行平台程式碼的時間多出許多。 為了將這一點放在觀點中,如果您能夠完全消除平台程序代碼成本,則只會在 1.4% 到 7.4% 的範圍內看到 Runbook 效能改善。

大部分的實際案例都會不同。 活動行為可能會因網域程式碼接獲的作業指示不同而改變。 例如, 從範本複製 VM 活動可能需要一分鐘的時間,才能從伺服器範本 A 複製 VM,但需要 5 分鐘才能從伺服器範本 B 複製 VM。此外,Runbook 伺服器可能位於具有不同效能特性的不同網路上,這可能會影響網域程式代碼效能和 Orchestrator 資料記錄效能。

判斷資料庫成長

Orchestrator 資料庫的資料庫系統管理員可以使用下列方針來研擬資料庫檔案成長策略:

  • 一般而言,資料庫檔案不會隨著 Runbook 的每個調用而增加大小。 而是當檔案所含的資料達到資料庫系統管理員設定的特定上限標準時檔案才會成長,此時檔案通常會擴大。

  • 每次 Runbook 活動執行時,應該個別計算它,當迴圈功能可能會導致單一活動多次執行時,應該考慮。

  • 若要判斷每次叫用 Runbook 所需的記憶體,請將 Runbook 中的活動數目乘以根據選取的記錄層級新增至資料庫的位元組數目。 這些值如下所述:

    • 524 位元組

      預設記錄設定。

    • 6082 位元組

      一般已發佈資料記錄層級。

    • 6082 個位元組 + 活動所記錄的資料

      活動特定已發佈資料記錄層級。

  • 依預設,Orchestrator 會保留每個 Runbook 最新的 500 個記錄檔,並在每天凌晨 2:00 清除其他所有記錄檔。 若要判斷每次叫用 Runbook 時的儲存需求,請將每次叫用 Runbook 時所需的儲存空間乘以 500。 如果您變更記錄檔清除設定,請視需要將每次叫用所需的儲存空間乘以每天、每週或每月的預估叫用次數。

下表顯示記錄層級設定的成長和效能預估值。

[記錄層次] DB 成長係數 效能係數 建議用於生產環境
Default 1 1
一般已發佈資料 11.6x 2.5x 在規劃的情況下有限度地使用
活動特定已發行資料 大於 11.6x 大於 2.5x

範例

範例 1

下表描述 Orchestrator 部署的資料庫大小調整考慮。

Runbook 名稱 活動數目 [記錄層次] 每天叫用次數
Runbook 1 50 Default 100
Runbook 2 25 Default 50
Runbook 3 12 一般已發佈資料 24
Runbook 4 8 一般已發佈資料 500

您可以使用上列資料庫大小來預估 Runbook 的儲存需求。

Runbook 名稱 每次叫用的位元組 儲存空間 (MB)

預設記錄檔清除 (500 次叫用)
每月叫用次數 儲存空間 (MB)

一個月

(非預設記錄檔清除)
30 天後的 DB 儲存空間 %
Runbook 1 26,200 12.5 3,000 74.5 9%
Runbook 2 13,100 6.2 1,500 18.7 2%
Runbook 3 72,984 34.8 720 50.1 6%
Runbook 4 48,656 23.2 15,000 696.0 83%
總計:76.7 MB 總計:839.3 MB

此範例清楚說明健全之資料記錄決策的重要性。 Runbook 4 只包含八個活動,但在 Common Published Data Logging 層級設定時,它會耗用資料庫中大部分的記憶體,因為調用頻率很高。 根據這些結果,您可能會偏好將 Runbook 4 的記錄層級縮減為默認記錄設定。

範例 2

下表描述另一個 Orchestrator 部署的資料庫大小調整考慮。

Runbook 名稱 活動數目 [記錄層次] 每天叫用次數
Runbook 1 50 Default 100
Runbook 2 25 Default 50
Runbook 3 12 一般已發佈資料 24
Runbook 4 8 預設 500

重新計算更新之設定的儲存數據會產生差異頗大的結果。

Runbook 名稱 每次叫用的位元組 儲存空間 (MB)

預設記錄檔清除 (500 次叫用)
每月叫用次數 儲存空間 (MB)

一個月

(非預設記錄檔清除)
30 天後的 DB 儲存空間 %
Runbook 1 26,200 12.5 3,000 74.5 37%
Runbook 2 13,100 6.2 1,500 18.7 9%
Runbook 3 72,984 34.8 720 50.1 25%
Runbook 4 4,192 2.0 15,000 60.0 29%
總計:55.5 MB 總計:203.3 MB

雖然默認記錄設定 (每個 Runbook) 500 個記錄專案,但 30 天的記憶體需求已大幅變更。 顯然,應該仔細考慮使用 Runbook 4 的一般已發佈數據記錄的記憶體成本,因為這項變更會導致 30 天的資料庫記憶體需求降低 76%。

摘要

請採用下列方針來管理資料庫大小和效能:

  • 只在需要時才啟用一般已發佈資料記錄。

  • 請切記記錄的資料數量取決於活動執行的次數。 有數次活動執行的小型 Runbook 可能會導致數據記錄比較大的 Runbook 執行次數還要少。

  • 請勿在生產環境中啟用活動特定已發佈數據的記錄,而且應該只用於偵錯。

  • 請設法瞭解 Runbook 在執行網域程式碼和平台程式碼時所需時間的差異。

  • 請使用本文件概述的技術來預估平台程式碼成本。 請參考這些技術,考量您應從何處著手改善 Runbook 的效能。

  • 請採用標準的測量比較方式,藉此找出改進的機會。

另請參閱