設定 FMW 延伸叢集的其他最佳化
雖然此拓樸並非全部都是必要項目,但它們可增強效能並改善特定功能與案例的行為。
在 Oracle WebLogic Server (WLS) 中設定逾時
資料庫中的交易有指定的逾時限制,對於交易分支、企業 JavaBean (EJB) 方法呼叫、Web 服務等等。Oracle Fusion Middleware 延伸的叢集部署對於逾時設定值特別敏感,因為多項作業需要在不同的位置存取資料庫。設定逾時,使下列項目發生:
- 他們將系統中的延遲歸納為系統。
由於所涉及的延遲,您可能需要增加這些系統類型的逾時。在延伸叢集模型中,兩個網站會共用網域設定值;因此,必須針對最壞情況使用該帳戶的逾時值。
- 它們會在不同層的呼叫鏈中正確到期。
逾時必須在系統的不同圖層中設定,以便適當的內嵌圖層能夠正常運作。例如,如果資料庫逾時設為低於全域 WLS 逾時的值,則在其他分支上的工作完成之前,可能會先將交易 ID 從資料庫移除。
這些是不同層的主要逾時參數:
- 全域交易逾期
Oracle WebLogic Server 全域交易逾時可決定分散式交易 (全域交易) 在 Oracle WebLogic Server 自動倒回之前,允許維持作用中的持續時間上限 (秒)。在「編輯樹狀結構」的服務區段中選取 JTA (Java 交易 API) ,然後指定逾時秒數,在 WebLogic Remote Console 中設定全域交易逾時。
- XA 交易逾期
Oracle WebLogic Server 中會使用 XA 資料來源中的 XA 交易逾時來設定資料來源的交易分支逾時。依預設,此值設為 0 (零),因此會使用 WebLogic 全域交易逾時。不過,如果您有長時間執行的交易超過 XA 資源的預設逾時值,您可能想要設定它。這個值是針對每個 XA 資料來源在交易頁籤中設定的。
- 分散式鎖定逾時
資料庫中的分散式鎖定逾時會指定分散式交易等待鎖定資源的時間量 (秒)。您可以使用適當的
SQL ALTER敘述句來修改參數 (distributed_lock_timeout)。
將資料庫的分散式鎖定逾時設定到足以應付最慢的交易 (考慮網站間的任何網路延遲)。之後,請使用下列規則將「XA 資料來源」和「全域交易逾時」設為較低的值:
distributed_lock_timeout >= XA DS Timeout >= Global Transaction Timeout應用程式可以使用其他逾時參數。例如,Oracle SOA 和 BPEL 具有下列額外的逾時參數,您必須考慮:
- syncMaxWaitTime
syncMaxWaitTime 是同步從屬端等待回應的時間上限。此設定定義要求和回應作業在逾時之前可能需要多久時間。如果 BPEL 處理在此時間內未取得回覆,活動就會失敗。若要在 Oracle Enterprise Manager Fusion Middleware Control 中變更此值,請執行下列動作:
- 在 SOA-infra 上按一下滑鼠右鍵,然後選取 SOA 管理。
- 選取 BPEL 特性。
- 選取其他 BPEL 組態特性。
- 更新 syncMaxWaitTime 值 (秒)。
- EJB 逾時
當涉及 BPEL EJB 方法時,這會指定異動逾時 (秒) (所有 BPEL EJB 的預設值為 300)。依下列方式修改逾時:
- 在 WebLogic 遠端主控台監督樹狀結構中,選取部署,然後選取應用程式管理。
- 展開 soa_infra 應用程式,然後展開組態和子建置。
- 展開模組並選取特定的 BPEL EJB。
Global Transaction Timeout > BPEL EJB's transaction timeout > syncMaxWaitTime - Web 服務用戶端逾時
Web 服務用戶端必須設定具有足夠延遲的逾時值。例如,如果通話需要 3 秒到站台 1,但需要 10 秒到站台 2,則應將逾時設定為至少 10 秒來處理較慢的站台。
- BPEL 處理逾時
如果 BPEL 處理使用特定的要求回覆 (同步) 和僅接收 (非同步) 逾時,您必須根據最差情況來定義它們:當呼叫進入具有最高資料庫延遲的網站時。這些逾時設定值是在 BPEL 處理中定義,且無法針對每個網站設定不同的逾時設定值。如需有關在 BPEL 處理中設定事件和逾時的詳細資訊,請參閱 Oracle Fusion Middleware Developer's Guide for Oracle SOA Suite 。請參閱「瀏覽更多」區段。
設定階段作業複製
某些應用程式 (Web 應用程式、主控台 (例如 Oracle SOA 編寫器、BPM 編寫器、BPM 工作區等等) 會大量使用 HTTP 階段作業物件。
Oracle Fusion Middleware (FMW) 延伸叢集部署的優點之一,就是能夠在網站之間提供無縫容錯移轉。不過,跨區域的階段作業複製可能會導致系統效能降低。Oracle 建議您定義兩個不同的複製群組 (每個區域一個群組),以將兩個網站的複製最小化。
若要設定階段作業複製群組,請執行下列動作:
- 在「WebLogic 遠端主控台編輯樹狀結構」中,選取「環境」,然後選取「伺服器」。
- 選取伺服器名稱,然後選取叢集頁籤。
- 對於區域 1 中的每個伺服器,輸入相同的複製群組名稱 (例如,Region1RepGroup)。
- 重複區域 2 中伺服器的步驟,針對所有伺服器使用通用名稱,但與區域 1 中使用的伺服器不同 (例如,Region2RepGroup)。
請注意,使用複製群組是將狀態僅複製到相同站台中的伺服器,但不是確定方法的最佳努力。如果單一伺服器可在一個站台上使用,而其他伺服器則可在另一個站台上使用,則會在整個區域進行複製,即使伺服器在同一站台上線,也會繼續進行該工作階段。
設定 JMS 的就地重新啟動
永久存放區對於 Oracle WebLogic Server (WLS) 伺服器的正常運作至關重要。就地重新啟動時,如果永久存放區發生錯誤,則 JMS 服務會嘗試在相同的伺服器上重新啟動,再嘗試移轉到其他伺服器。此方法比將整個 JMS 服務移轉到其他伺服器更快,而且通常可以快速解決問題。
若要設定 JMS 永久存放區的就地重新啟動,相關 JMS 伺服器和永久存放區必須定位到可移轉目標。此可移轉目標必須使用預設未啟用的失敗時重新啟動。若要設定此特性,請遵循下列步驟:
- 連線至 WebLogic Remote Console
- 在「編輯樹狀結構」中,選取環境,然後選取可移轉目標。
- 選取可移轉目標並啟用失敗時重新啟動。
- 選取「儲存」並確認變更。
設定 Oracle FMW SOA Suite JMS 轉接器
Oracle 建議您使用叢集語法 (例如:cluster:t3s://cluster_name) 來簡化組態。此方法可讓轉接器動態擷取叢集內目前的作用中伺服器清單,以確保有效率地擷取 JNDI 相關資訊環境。
如果系統使用密集 JMS 轉接器和大型有效負載 (Payload),建議將 JNDI URL 設定為只包括每個區域內的本機伺服器。這表示在區域 1 中指定區域 1 中組態的伺服器,以及在區域 2 中指定區域 2 中組態的伺服器。此設定可確保網站內容相關性、最佳化效能及降低延遲。
設定 Oracle FMW SOA Suite 檔案轉接器
此機制可確保一次只有一部伺服器處理相同的檔案,而且兩個轉接器執行處理不會同時寫入同一個檔案。
在 Oracle Fusion Middleware (FMW) 延伸叢集拓樸中,每個網站都會獨立運作,並使用自己的專用共用儲存體來處理檔案。不過,這兩個網站預設都會使用相同的資料來源、綱要及表格來進行檔案鎖定和互斥機制。
在輸出作業中,使用共用資料庫表格是適當的,因為會採用唯一的順序作為 mutex,以防止並行寫入作業覆寫檔案。
不過,輸入作業可能會出現「處理中」情況。任一站台中的檔案配接器例項都可以將檔案標示為「已封鎖」。如果兩個網站都存在相同的檔案名稱,此機制可以阻止它在兩個位置的處理,但檔案只會被使用。為了避免這些情況,有多種替代方法:
- 實作網站特定的檔案命名慣例。根據網站在檔案名稱中使用唯一識別碼,以減少發生名稱衝突和後續封鎖的可能性。
- 為檔案轉接器鎖定和互斥表格的每個區域設定個別的綱要,以確保檔案鎖定和互斥機制獨立運作,避免跨網站封鎖。
- 針對「檔案」轉接器鎖定和 mutex 表格使用個別的資料庫,確保檔案處理描述資料是個別管理的。
若要將「檔案轉接器」設定為在每個區域使用不同的資料庫或個別綱要,您必須建立適當的綱要擁有者和表格,並建立新的資料來源。區域 1 中的伺服器將繼續使用原始資料來源,只有區域 2 中的部署計畫會被修改為使用新資料來源。
區域 1 中的伺服器會使用原始資料來源,而區域 2 中的伺服器會使用新的資料來源。
設定 Oracle Fusion Middleware Oracle SOA Suite 記憶體內 SOA
這可改善這些業務流程的效能和擴展性,因為讀取和寫入作業是從快取執行。
BPEL 狀態資訊會儲存至 Oracle Coherence 快取並從該快取提取。處理作業狀態只有在發生錯誤時才會寫入資料庫,或使用後續寫入繫線定期寫入資料庫。
Oracle Fusion Middleware 延伸叢集拓樸不支援記憶體內 SOA,其中 Coherence 快取的用量必須最少,因為對於延遲非常敏感。
設定調整 WebLogic 資料庫租用
資料庫租用是用來支援「自動服務移轉」的核心機制,特別是叢集單一服務 (例如 JMS 伺服器或「JTA 交易復原服務」)。它可用來管理和協調叢集中多個伺服器之間這些單一服務的擁有權。此機制使用資料庫作為一個中心點,以可靠地追蹤和控制叢集中的哪個伺服器在任何指定時間「擁有」或管理特定的單一服務。這是透過將版本記錄儲存在資料庫中來完成的,此資料庫由所屬伺服器定期更新 (續約)。請參閱管理 Oracle WebLogic Server 的叢集中的可移轉服務的租用。
本指南中先前提供的 GridLink 資料來源組態,可保證在發生資料庫容錯移轉或切換時自動重新連線。不過,設定資料庫租用或 JDBC 永久存放區的所有伺服器,都可以在資料庫中斷、切換或容錯移轉期間關閉。當關鍵子系統 (例如 JTA 服務) 失敗時,伺服器會設為 FAILED 狀態,並由節點管理程式自動重新啟動。
移至 FAILED 狀態所使用的時間是變數;這取決於觸發相關檢查的時間,而且可能發生的原因有很多:
- 如果伺服器無法在重試總數之後更新租賃表格。
- 如果伺服器在各種重試和就地重新啟動之後,無法存取 JTA JDBC 永久存放區。
資料庫切換可能需要幾分鐘的時間。由於無法存取 JTA JDBC 永久存放區而自動重新啟動 WLS 伺服器需要較長的時間 (大約 8-9 分鐘),因此在資料庫的一般切換或容錯移轉期間不會觸發 WLS 伺服器。但由於使用預設租賃組態在不到 2 分鐘內遺失租賃,伺服器可以轉變為 FAILED 狀態。因此,如果 WebLogic 伺服器使用資料庫租用,可以在 Oracle Data Guard 切換期間自動觸發 Oracle WebLogic Server 重新啟動,或觸發容錯移轉。
有兩個參數可改善使用資料庫租用之伺服器資料庫中斷的復原能力。這些參數為 database-leasing-basis-connection-retry-count (預設為 1 次重試) 和 database-leasing-basis-connection-retry-delay (預設為 1 秒)。增加這些參數會延長遺失租賃錯誤發生之前的時間。這可讓 WebLogic 伺服器容許較長的資料庫中斷,而不自動重新啟動;它們只會在資料庫再次可用時重新連線。雖然資料庫關閉時連線嘗試會失敗,但不會重新啟動 WebLogic 伺服器。
因此,在延伸的叢集中,建議增加「資料庫租用連線重試計數」和「逾時」的值,讓 WebLogic 伺服器更能抵禦資料庫中斷。若要變更這些屬性,請使用 WLST 指令。舉例而言:
$ORACLE_COMMON_HOME/common/bin/wlst.sh
connect('weblogic','password','t3s://ADMINVHN:9002')
edit()
startEdit()
cd('/Clusters/' + 'My_Cluster')
cmo.setDatabaseLeasingBasisConnectionRetryCount(10)
cmo.setDatabaseLeasingBasisConnectionRetryDelay(10000L)
save()
activate()
disconnect()
exit()秘訣:
當伺服器變為 FAILED 狀態時,節點管理程式預設會嘗試兩次重新啟動伺服器。如果伺服器無法正確啟動,則會將其標示為 FAILED_NOT_RESTARTABLE。您可以在伺服器的狀況頁籤中調整重新啟動次數。使用間隔內重新啟動次數上限參數來定義節點管理程式在重新啟動間隔中指定的間隔內重新啟動伺服器的次數。設定 Coherence
例如,Oracle SOA Suite 會使用 Oracle Coherence 來跨叢集傳輸複合項目部署和描述資料 (MDS) 更新。
Oracle Coherence 支援叢集成員尋找和訊息傳遞的多點傳送和單點傳送通訊。單點傳送特別適用於無法取得或不支援多點傳送的環境,例如跨多個資料中心或雲端區域。叢集成員可以使用已知位址 (WKA) 功能來尋找和加入叢集,而不需要仰賴多點傳送。設定 WKA 時,會停用所有多點傳送通訊。依照預設,Oracle Fusion Middleware 產品使用單點傳送搭配 Coherence 預先定義的 WKA 清單。
Oracle Coherence 對叢集形成期間的延遲以及來自叢集成員的回應活動訊號敏感。不過,新版本透過 allowable variance 等功能增強了通訊延遲的容忍度。allowable variance 定義 Coherence 叢集內網路通訊中允許的計時變化。此可設定的參數 (maximum-time-variance) 預設為 16 毫秒,可設定往返時間 (RTT) UDP 通訊允許的延遲上限。Coherence 會根據觀察的網路延遲或不一致情況動態調整此值,以因應較大的預期時間偏差,維持叢集穩定性與效能。訊息 Increasing allowable variance to XX 表示此類調整。請參閱使用 Oracle Coherence 開發應用程式中的作業組態元素。
隨著 Oracle Coherence 的改進,如果延遲維持在建議的 FMW 延伸叢集拓樸限制內 (<10ms RTT),則不會在叢集形成時報告任何錯誤。不過,長時間的叢集活動訊號延遲可能會導致部署出現競爭,以及中斷的反應時間不佳。
如果您在 Coherence 叢集形成或作業中發生錯誤,則可以調整下列 Coherence 網路逾時參數:
<multicast-listener><join-timeout-milliseconds>. 儘管原本是針對多點傳播組態所設計,但聯結逾時也會影響單點傳播。它決定初始節點形成叢集所需的時間,在嘗試形成叢集之前,每個節點將花費多久時間尋找叢集 (如果它們位於 WKA 清單上)。預設值為 3000,在不可靠的網路上,您可能需要增加這個值,在啟動新叢集之前,嘗試尋找叢集的時間較長。<packet-publisher><packet-delivery><resend-milliseconds>. 封包重新傳送間隔指定封包重新傳送封包之前,封包發佈者等待相對應 ACK 封包的最短時間 (毫秒)。這應該是 RTT 的幾個倍數,10x 必須正確。預設值是 200。<packet-publisher><packet-delivery><timeout-milliseconds>. 若為需要確認的封包,請指定重新傳送封包的時間上限 (毫秒)。此逾時到期之後,Coherence 會決定是否將收件者視為已終止。預設值 5 分鐘應該足夠,但是您可以增加預設值,以避免在加入叢集時逾時。<packet-publisher><packet-delivery><heartbeat-milliseconds>此參數是 tcp 環形死亡偵測的訊號間隔。預設活動訊號值為 1 秒。您可以增加此值以減輕網路流量,但這也會持續偵測失敗的成員。<tcp-ring-listener><ip-timeout>和<ip-attempts>。這些是在判斷代管叢集成員的電腦已經無法連線之前所嘗試的時間和嘗試次數。Ip 逾時應位於 RTT 或更新版本的 10x 區域中,最少為 5s。<cluster-config><tcp-ring-listener><enabled>. 您甚至可以停用 tcp-ring 死亡偵測以減輕網路流量,但也會導致偵測失敗成員的時間較長。若要停用死亡偵測,請將其設為 false。如果停用,叢集成員會使用封包發佈者的重新傳送逾時間隔來判斷另一個成員已停止回應 UDP 封包 (預設為 5 分鐘)。
若要修改預設組態設定,請使用 Coherence 覆寫檔案。建立名為 custom-coherence-override-<name>.xml 的檔案,並確定該檔案一致且可供叢集內的所有伺服器存取。在 java 特性 tangosol.coherence.override 中指定此檔案。您可以在 setUserOverrides.sh 檔案的 EXTRA_JAVA_PROPERTIES java 特性中設定它。舉例而言:
EXTRA_JAVA_PROPERTIES="${EXTRA_JAVA_PROPERTIES} -Dtangosol.coherence.override=/u01/oracle/config/coherence_custom/custom-coherence-override.xml"調整參數的 Coherence 覆寫檔案範例:
<?xml version='1.0'?>
<!--
This is a custom operational configuration override
-->
<coherence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.oracle.com/coherence/coherence-operational-config"
xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-operational-config coherence-operational-config.xsd"
>
<cluster-config>
<multicast-listener>
<join-timeout-milliseconds>5000</join-timeout-milliseconds>
</multicast-listener>
<tcp-ring-listener>
<ip-timeout>20s</ip-timeout>
<ip-attempts>3</ip-attempts>
</tcp-ring-listener>
<packet-publisher>
<packet-delivery>
<resend-milliseconds>200</resend-milliseconds>
<timeout-milliseconds>650000</timeout-milliseconds>
</packet-delivery>
</packet-publisher>
</cluster-config>
</coherence>
調整 tcp 環狀間隔的 coherence 覆寫檔案範例:
<?xml version='1.0'?>
<coherence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.oracle.com/coherence/coherence-operational-config"
xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-operational-config coherence-operational-config.xsd">
<cluster-config>
<packet-publisher>
<packet-delivery>
<heartbeat-milliseconds>5000</heartbeat-milliseconds>
</packet-delivery>
</packet-publisher>
</cluster-config>
</coherence>停用 tcp-ring 死亡偵測的 coherence 覆寫檔案範例:
<?xml version='1.0'?>
<coherence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.oracle.com/coherence/coherence-operational-config"
xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-operational-config coherence-operational-config.xsd">
<cluster-config>
<tcp-ring-listener>
<enabled>false</enabled>
</tcp-ring-listener>
</cluster-config>
</coherence>
設定網路服務效能
部分作業系統預設組態可能未最佳化,因此調整部分參數以提高資料傳輸效率變得非常重要。當 JDBC 從屬端與伺服器之間有高延遲時,這些調整會特別重要。資料庫存取延遲最高的伺服器應引導設定網路緩衝區和 Oracle Net Services 設定值,以最佳化效能。
判斷最佳組態的其中一個關鍵指標是頻寬延遲產品 (BDP)。它代表在任意指定時間內,可在網路中傳輸的最大資料量。計算方式是將網路連結的容量 (頻寬) 乘以往返延遲時間 (延遲):
BDP = Bandwidth × Round-Trip Time (RTT)- RTT:在 OCI 中,您可以從 OCI 主控台的區域間延遲頁面,取得區域之間的平均 RTT。或者,您可以使用命令 (例如在幾分鐘內從一個主機偵測至另一個主機) 來決定來回旅行時間 (RTT),然後使用傳回的回應時間。
- 頻寬:OCI 區域之間沒有保證的頻寬,而 OCI 並未提供特定的 OCI 頻寬測量工具。若要進行精確的頻寬測量,您可以使用 iPerf 之類的工具進行測試。經過法蘭克福與阿姆斯特丹之間的頻寬測試,約為 2 – 2.5 Gbps。
TCP 通訊埠緩衝區設定值可控制一次透過網路傳送多少個封包。為了達到最佳傳輸量,建議將通訊端緩衝區大小至少設為 BDP。在許多情況下,將緩衝區大小設定為 BDP 的兩倍可進一步增強效能,尤其是在高延遲網路中。不過,過大的緩衝區可能會導致記憶體使用量增加。因此,建議將 BDP 範圍內的緩衝區大小設為 BDP 的三倍:
BDP ≤ Socket Buffer Size ≤ 3 × BDP在資料庫中設定 IO 緩衝區大小
SEND_BUF_SIZE 參數通常就夠了。
如果資料庫伺服器接收大型要求,請一併設定 RECV_BUF_SIZE 參數。建議您在資料庫的 Oracle Net Services 層次進行調整,而不是在作業系統層次進行調整,如此一般 TCP 階段作業 (例如 SSH) 就不會使用額外的記憶體。
若要設定資料庫伺服器的這些參數,請在 listener.ora 或 sqlnet.ora 檔案中設定緩衝區空間大小。
-
在
listener.ora檔案中,指定特定協定位址或說明的緩衝區空間參數。以下為 Oracle Cloud Infrastructure (OCI) 中基準資料庫系統的一般 Oracle RAC 監聽器組態設定值範例:LISTENER_SCAN2=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN2)))) LISTENER_SCAN1=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN1)))) LISTENER_SCAN3=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN3)))) (…) LISTENER=(DESCRIPTION=(SDU=65535)(SEND_BUF_SIZE=10485760)(RECV_BUF_SIZE=10485760)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))) -
如果在
sqlnet.ora中設定參數,則這些參數會全域套用至所有監聽器。以下為sqlnet.ora檔案中的設定值範例:RECV_BUF_SIZE=10485760 SEND_BUF_SIZE=10485760
在中間層節點中設定 IO 緩衝區大小
Linux 作業系統會使用自動調整來接收和傳送者緩衝區。
對於接收緩衝區,自動調整是由 /proc/sys/net/ipv4/tcp_moderate_rcvbuf 參數決定。如果參數的值為 1,則會啟用自動調整。使用自動調整功能時,會動態更新每個連線的接收器緩衝區大小 (以及 TCP 視窗大小),緩衝區大小上限為 4 MB。
對於寄件者緩衝區,預設也會啟用自動調整功能。雖然可以透過 tcp_moderate_rcvbuf 參數控制接收緩衝區自動調整,但傳送緩衝區自動調整沒有直接切換。只要設定固定緩衝區大小,就會停用傳送緩衝區自動調整功能。
這些自動調整處理作業由多個核心參數所管理,這些核心參數可管理用於傳送和接收資料的記憶體配置:
- 每個連線緩衝區大小
每個 TCP 連線的記憶體配置是由兩個參數定義:
/proc/sys/net/ipv4/tcp_rmem,指定保留給 TCP 接收緩衝區的記憶體。/proc/sys/net/ipv4/tcp_wmem,指定保留給 TCP 傳送緩衝區的記憶體。
兩個參數都接受三個值:
- 最小緩衝區大小:配置給 TCP 通訊埠的最小緩衝區大小。
- 預設緩衝區大小:建立時指派給 TCP 通訊埠的初始緩衝區大小。
- 最大緩衝區大小:可自動配置給 TCP 通訊埠的最大緩衝區大小。
這些設定會建立自動調整機制的界限,並協助平衡記憶體使用量,尤其是在記憶體壓力期間。
- 每個應用程式緩衝區大小
應用程式可以要求特定的緩衝區大小,但這些要求受下列參數定義的限制:
/proc/sys/net/core/rmem_max是最大接收視窗,可設定應用程式可要求的接收緩衝區大小上限。/proc/sys/net/core/wmem_max是「傳送」視窗的最大值,可設定應用程式可要求的傳送緩衝區大小上限。
若要調整 IO 緩衝區大小,請執行下列動作:
TCP 自動調整功能會維持啟用狀態,並針對您的網路頻寬延遲產品調整界限大小,進而改善傳輸量,而不會過大系統記憶體使用量。
設定階段作業資料單位大小
在透過網路傳送這些單位之前,Oracle Net Services 會先等待這些單位填滿。這些緩衝區各有一個階段作業資料單位 (SDU)。將 SDU 大小調整為提供給 Oracle Net Services 的資料量,可以改善 Oracle Fusion Middleware 延伸叢集中延遲超過 5 毫秒 RTT 的效能、網路使用量以及記憶體使用量。
SDU 大小可以從 512 個位元組設定為 2 MB。在 Oracle Database 23ai 中,預設 SDU 大小為 64 KB (65,536 個位元組)。舊版的資料庫會將其預設 SDU 大小設定為 8 KB。
實際使用的 SDU 大小是從屬端與伺服器連線時交涉的,而且是兩者中比較小的那個值。若要設定與預設值不同的 SDU 大小,需要在從屬端與伺服器電腦上設定 SDU。Oracle 建議將 SDU 設定為可能的最大值 (64k)。
用戶端與伺服器會在連線時協商 SDU;設定這兩端可確保使用預期的 SDU。