Oracle RAC (Real Application Clusters) 調優在 Single Instance 基礎上,新增叢集互聯傳輸、Global Cache Service (GCS)、Cache Fusion 等維度。本文遵循「先調 Single Instance 再調 RAC 專有」原則,解析 CPU/Wait Time 比率判讀、RAC 專有工具與指標、Cache Fusion 效能影響三大面向。
一、CPU Time vs Wait Time:調優方向的羅盤
- Wait Time 佔大多數:資源爭用嚴重,優先調優(鎖、I/O、叢集等待)
- CPU Time 佔大多數:可能為惡劣 SQL、缺索引、邏輯讀過高
- 趨勢:負載增加時 Wait Time 比率通常上升;若 CPU 比率不降,系統擴展性較好,增加 CPU/Node 效益大
- AWR 報告 Top 5 Events 區段會顯示 CPU Time 與前五大等待事件
二、RAC 專有調優:Reactive 與 Proactive 雙軌
Reactive(事後分析)工具
- 特定等待事件:
gc cr block 2-way、gc current block 3-way、gc buffer busy
- 系統/佇列統計:
V$SYSSTAT、V$GES_STATISTICS
- Database Control / Cloud Control 效能頁面
- Statspack / AWR 報告
Proactive(事前預防)工具
- AWR Snapshots(持久化統計基線)
- ADDM (Automatic Database Diagnostic Monitor) 報告
原則:先對每個 Instance 做 Single Instance 風格調優,再處理 RAC 專有爭用。Single Instance 存在的序列化問題在 RAC 中會被放大。
三、Cache Fusion 影響分析:核心指標與等待事件
Cache Fusion 讓 Instance 間透過高速互聯直接傳遞資料區塊,避免磁碟 I/O,維護全域緩衝一致性。
1. 全域緩衝服務統計
-- 關鍵統計名稱
gc current blocks received
gc cr blocks received
gc current blocks served
gc cr blocks served
gc current block send time
gc cr block send time
2. 全域緩衝服務等待事件
| 等待事件 | 含義 | 關注點 |
gc current block 2-way | 請求當前區塊,雙向傳輸 | 延遲高 → 互聯頻寬/延遲問題 |
gc current block 3-way | 請求當前區塊,三向(含 Master) | 同左 |
gc cr block 2-way | 請求 CR 區塊,雙向 | 大量報表查詢觸發 |
gc cr grant 2-way | 授予 CR 區塊 | 權限傳遞開銷 |
gc buffer busy | 區塊在遠端被修改,本端等待 | 熱點區塊爭用 |
3. 傳輸響應時間構成
物理交換鏈路 + IPC 協定 + GCS 協定訊息與處理時間
- 不受磁碟 I/O 影響(除 Redo 寫入外)
- Cache Fusion 協定不讀寫資料檔,故 RAC 不比 Non-RAC 產生更多 I/O
4. 調優切入點
- 互聯網路:專用私有網路、啟用 Jumbo Frames、RDMA/RoCE、最小化跳數
- 熱點物件:識別高
gc buffer busy 物件 → 分割索引、反向鍵索引、增加 PCTFREE、哈希分區
- 應用親和性:Service/Instance 綁定,減少跨 Instance 存取
- 統計收集:啟用
GATHER_SYSTEM_STATS、定期 AWR Snapshot
結語
RAC 調優 = Single Instance 調優 × N + 叢集互聯調優。Cache Fusion 將磁碟 I/O 爭用轉化為網路延遲爭用,私有互聯網路品質決定 RAC 成敗。建立 gc* 等待事件儀表板,配合 ADDM 自動診斷,才能在叢集擴展中保持線性效能增長。
- 上一篇文章: Oracle 資料匯入匯出實戰範例:exp/imp 參數全景與權限配置指南
- 下一篇文章: Oracle imp 導入實用程式八大常用用法:從完整導入到增量恢復完整指南
Copyright ©
程式碼之家 All Rights Reserved