關於效能結果
用於測試的系統是跨法蘭克福和阿姆斯特丹 Oracle Cloud Infrastructure (OCI) 區域設定的 Oracle Fusion Middleware (FMW) 延伸叢集。
WebLogic 網域包含 5 個分散在不同位置的節點,以進行各種拓樸的效能比較:在與資料庫相同的可用性網域中執行的伺服器、位於相同區域但位於不同可用性網域中的伺服器,以及位於不同區域中的伺服器。
這些壓力測試是使用 SOA Fusion 訂單示範 (FOD) 作為 SOA 應用程式範例來執行。當訂單完成時,FOD 示範已修改為將 Java Message Service (JMS) 訊息插入統一分散式目的地 (UDD) 目的地。此範例非常耗用大量資料庫,並使用多個 SOA 轉接器,例如「檔案轉接器」和「JMS 轉接器」。它也涉及不同的 SOA 元件,例如 Mediator、業務流程執行語言 (BPEL)、規則引擎以及多個 WebLogic 功能。
下圖顯示用於測試的 FMW 延伸叢集環境:
fmw-stretched-performance-env-oracle.zip
此環境中網路之間的實際延遲值為:
| 在主機之間 | 平均延遲 (RTT,毫秒) |
|---|---|
| 在相同的可用性網域中 | 0.3 |
| 在相同區域,但在不同的可用性網域中 | 0.6 |
| 在不同區域 (法蘭克福和阿姆斯特丹) | 6.5 |
複查壓力測試
部分經過測試的組態為:
- 解決兩個節點啟動的叢集,在伺服器與其中一個伺服器之間套用不同的延遲至資料庫。
- 嚴格測試個別伺服器,每個伺服器的資料庫延遲都不同。
- 在與資料庫共置的兩部伺服器 (僅限本機) 和兩部伺服器遠端從資料庫執行測試 (僅限遠端)。
- 壓縮每個區域中兩個作用中節點的叢集。
每個組態都會測試不同的工作負載。所有工作負載要求會先傳送至前端,然後在 Oracle WebLogic Server 執行處理之間分配 (透過全域負載平衡,接著是本機負載平衡器,然後是 Web 伺服器)。工作負載類別 (低、中、高) 取決於每個設定中的作用中節點數目,並受資料庫的並行限制。例如,如果有四個節點正在執行,則 80 個並行虛擬使用者會被視為 WebLogic 伺服器的低工作負載,但如果只有一個節點處於作用中狀態,則會被視為高工作負載。不過,從資料庫的角度來看,工作負載維持不變。為求簡化,使用的工作負載如下:
- 低工作負載 (每一 WebLogic 伺服器 20 位並行虛擬使用者,系統中最多 40 位並行虛擬使用者)
- 中型工作負載 (每一 WebLogic 伺服器 40-60 個並行虛擬使用者,系統中最多 120 個並行虛擬使用者)
- 高工作負載 (每一 WebLogic 伺服器 80 位並行虛擬使用者,系統中最多 160 位並行虛擬使用者)
根據壓力測試結果,以下是結論:
- 整體叢集效能
具有 2 個伺服器之叢集的整體叢集效能 (以 WebLogic 傳輸量、每秒異動數 (TX/ 秒計):
- 當兩個伺服器都位於相同的可用性網域 (AD) (參照):100%
- 當每台伺服器處於不同的 AD 時:~100%
- 當一個伺服器位於不同的區域時 (6.5ms 來回時間 (RTT):90-95%
- 當兩個伺服器都位於與資料庫不同的區域時 (6.5ms RTT):85-95%
- 每一伺服器的效能
每個伺服器的效能 (以 WebLogic 傳輸量、TX/ 秒為單位):
- 對於與資料庫相同 AD 中的伺服器 (作為參照):100%
- 其他 AD 中的伺服器:98-99%
- 另一個區域的伺服器:85-90%
- 作用中資料來源連線數目
作用中資料來源連線的數目會隨著資料庫的延遲而增加。雖然這取決於工作負載,但區域 2 中的伺服器最多會顯示 2x 個作用中連線,而不是與資料庫共置的伺服器。若要正確調整 WebLogic 資料來源和資料庫階段作業的大小,請考慮這樣做。
- JTA 交易
在對資料庫延遲較高的伺服器中,JTA 交易在較長的時間內保持作用。在較長期間維持作用中的交易,較有可能受到失敗的影響。因此,在這些系統中,交易記錄會使用 JDBC 永久存放區時,它會特別重要。對於伺服器故障,應進行服務移轉,並自動進行復原。
- 跨區域延遲
如需 6.5ms RTT 的跨區域延遲,以及實作本文件針對 FMW 延伸叢集所提供的最佳實務:
- 使用拉伸叢集的效能降低 (~10%)。
- 叢集在每個區域中都有一部伺服器,以及遠端區域中同時有兩部伺服器的叢集,效能降低類似。這是因為叢集內部通訊也會受到延遲的影響。
- 跨 AD 延遲
跨 AD 延遲 (0.6ms) 對 SOA FOD 系統的整體效能沒有重大影響。
附註:
考慮上述所有因素,在許多測試中觀察到效能處罰,Oracle 不支援網站間超過 10 毫秒延遲 (RTT) 的 Oracle Fusion Middleware 延展叢集。系統運作時不會發生問題,但交易時間會大幅增加。超過 10 毫秒 (RTT) 的延遲也會造成用於部署和 JT、Web 服務或應用程式逾時之 Oracle Coherence 叢集的問題。這使得此手冊中提供的解決方案主要適用於在它們之間具有低延遲的網站或區域。
若為具有 2 個節點的叢集,下列圖表會顯示叢集的整體效能 (視伺服器所在位置而定)。參照 (100%) 是當兩個伺服器與資料庫在同一個 AD 中執行時。
使用 2 個節點的叢集時,下列圖表顯示未與資料庫共置 (位於其他 AD 或遠端區域) 之伺服器的效能,與與與資料庫共置之伺服器的效能相比:
在具有 2 個節點的叢集時,這些圖表會顯示每個伺服器的作用中資料來源連線 (平均) 數目。一部伺服器一律與資料庫 (site1) 共置,另一部伺服器的延遲值與資料庫不同 (site2):
在具有不同資料庫延遲的單一伺服器時,會觀察到下列效能結果,與與資料庫共置 (從中至高負載) 的伺服器相比。參照 (100%) 是當伺服器與資料庫位於相同的 AD 時。
對資料庫具有不同延遲的單一伺服器進行壓力時,這是中至高壓力下的作用中資料來源連線:
將延遲不同的單一伺服器置於資料庫時,下列影像顯示資料庫不同延遲的平均 JTA 作用中時間:
比較叢集的效能與資料庫 (僅限本機) 相同區域中兩部伺服器的叢集與資料庫 (僅限遠端) 不同區域中兩部伺服器的叢集時,會發現下列效能結果。參照 (100%) 是僅限本機叢集。
下圖顯示兩個伺服器都在與資料庫相同的區域 (僅限本機) 執行,以及在與資料庫不同的區域 (僅限遠端) 執行兩個伺服器之叢集的平均 JTA TX 作用中時間。
審核開始時間
根據資料來源中的初始容量設定值,預期會有不同的延遲。依預設,大多數 Oracle Fusion Middleware (FMW) 資料來源的連線集區使用零初始容量。不過,為了在一般執行階段作業期間縮短系統的回應時間,增加初始集區容量會很有幫助。不過,在延伸叢集中,遠端前往資料庫的伺服器會在啟動時顯示較高的初始集區容量。
在正常作業期間將回應時間最佳化,並將開始時間降到最低,以決定理想的初始容量設定之間需要平衡決定。由於初始容量是在資料來源 (連線集區) 層次設定,因此這些設定值會影響叢集內所有伺服器 (資料庫本端伺服器與其遠端伺服器) 的啟動時間。
下列圖表顯示所有資料來源中不同起始大小值的 WebLogic 伺服器啟動時間 (總計為 11 個資料來源):
複查 JMS 服務移轉時間
不過,由於資料庫延遲,從區域 1 到區域 2 進行服務移轉作業所花費的時間可能會增加。這項增加是由於在另一個伺服器中復原訊息所花費的時間所造成,因為它們是從另一個區域之資料庫中的永久存放區讀取。
如果永久存放區有大量的擱置中訊息,則增量會更高。對於大小為 2.7 KB 的 JMS 訊息,下列影像顯示當其中一個永久存放區有大量擱置中訊息 (大約為 8000) 時,JMS 服務移轉時間,而服務會從與資料庫共置的伺服器移轉至另一個伺服器,以因應目的地伺服器與資料庫之間的不同延遲:
下列影像顯示目的地伺服器與資料庫之間不同延遲的服務移轉時間增量 (%) 以及大量擱置中訊息 (約 8000)。參照 (100%) 是指服務移轉至與資料庫位於相同可用性網域 (AD) 中的伺服器。
下列影像顯示相同案例的移轉時間,但目的地伺服器與資料庫之間不同延遲的擱置訊息數目 (約 50 個)。
下列影像顯示目標伺服器與資料庫之間不同延遲的 JMS 服務移轉時間增量 (%) (擱置中訊息數目約為 50)。參照 (100%) 是指服務移轉至與資料庫位於相同 AD 中的伺服器。
複查 SOA 複合項目部署時間
建置複合項目 (建置第一個版本或更新至較新版本) 時,可以將該複合項目建置在區域 1 的伺服器之前,而不是建置到區域 2 中的伺服器,但要等到叢集的所有成員都可以使用該複合項目後,才會正式啟動該複合項目。
下列影像顯示伺服器啟動時,在伺服器中載入複合項目所花費的時間增加,資料庫的延遲時間與在與資料庫位於相同可用性網域 (AD) 的伺服器中載入複合項目所花費的時間相比。複合大小為 365 KB。
下圖顯示使用 Oracle WebLogic Scripting Tool (WLST) 命令部署複合項目時,與執行部署到資料庫之伺服器不同的延遲所花費的時間增加。
複查網站之間的流量
不過,這種隔離機制並不確定 (例如,容錯移轉情況的空間可能會在兩個網站間進行 Java Message Service (JMS) 呼叫。也就是說,就典型的應用程式而言,大部份的流量是在 Oracle WebLogic Server 執行處理與資料庫之間發生。這將是 Oracle Fusion Middleware (FMW) 延伸叢集拓樸效能的關鍵。此圖像顯示進行壓力測試時,區域 2 中 WebLogic 伺服器與區域 1 中不同位址之間的流量百分比。請注意,伺服器與資料庫之間 (位於區域 1) 會發生超過 90% 的流量。
若要擷取網站之間每個 IP 的流量,您可以使用 iftop 工具。舉例而言:
sudo iftop -i ens3 -F <remote_site_CIDR> -n -t -s 900下圖顯示進行壓力測試時,區域 2 中 WebLogic 伺服器與區域 1 中不同位址之間的流量百分比。
















