首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Sun Solaris 平台 Oracle 8i 效能調優指令與方法總彙整

     編輯:Oracle 資料庫基礎

效能監控常用指令

指令用途範例
vmstat程序、虛擬記憶體、磁碟、分頁、CPU 活動總覽vmstat 5 (每 5 秒取樣)
sar交換、分頁、磁碟、CPU 詳細統計sar -p 10 10 (分頁 10 次/10秒)
sar -b (磁碟塊讀寫)
sar -u (CPU)
iostat終端機與磁碟 I/O 活動,找出熱點磁碟iostat 5 5
swap交換空間使用狀況swap -l (列出)
swap -a (新增)
mpstat多處理器各 CPU 統計mpstat 5

記憶體管理調優

1. 交換空間

  • 用 sar -w 或 vmstat -S 觀察 swap in/out;頻繁交換需:
    ① 停用非必要 daemon/應用;
    ② 減少 DB_BLOCK_BUFFERS (釋放 SGA);
    ③ 原始裝置環境下減少 UNIX 檔案緩衝區;
    ④ swap -a 動態增加交換區。
  • 啟動時建議配置 2-4x 實體 RAM 交換空間;跑 Oracle Applications 更大。

2. 分頁控制

  • 少量分頁可接受;用 vmstat/sar -p 比較閒忙時段。
  • 過多分頁對策:加記憶體、分流工作負載、縮減核心記憶體佔用、確保 SGA 置於單一共享記憶體段。
  • 共享記憶體不足時需重編核心調大 shmmax/shmall。

磁碟 I/O 調優

1. DBWR 寫入頻寬優化

  • 非同步 I/O:Solaris 支援原始裝置與檔案系統 AIO,減少 DBWR 等待;啟用 DISK_ASYNCH_IO=TRUE。
  • I/O Slaves:專責 I/O 的背景程序,參數 DBWR_IO_SLAVES (建議 4);若 AIO 不可用則必須啟用。
  • 多 DBWR 進程:DB_WRITER_PROCESSES (8i 新參數);若用 Slaves 則固定 1 個 DBWR。

2. 磁碟請求佇列

  • iostat 觀察佇列長度 (待服務 I/O 數);應趨近 0。長佇列代表磁碟飽和,需重新分佈資料檔/日誌檔。

3. 檔案系統選擇

  • Solaris 可選:s5 (SysV)、ufs (BSD 衍生、通常高效能)、vxfs (Veritas)、原始裝置 (無檔案系統開銷)。
  • 同類檔案系統效能差異大,建議實測比較;資料檔與日誌檔分離不同實體磁碟。
  • Oracle 區塊大小應符合或為磁碟區塊 (通常 512B) 倍數。

CPU 使用率調優

  • 統一優先權:所有 Oracle 使用者/背景程序同一優先級;手動調整會導致 LGWR/DBWR 爭搶或回應惡化。
  • 處理器親和性:多 CPU 系統啟用 pbind 將關鍵服務綁定特定 CPU,善用 L2 快取;背景程序可允許漂移。
  • 單任務連結:大量 Export/Import/SQL*Loader 時,編譯單任務版可執行檔 (make -f ins_rdbms.mk singletask) 直接存取 SGA,省去 IPC 開銷,但佔用更多記憶體。

區塊大小與檔案大小

  • Solaris 預設 2KB,可設 2KB 倍數至 16KB;最佳值視應用而定,通常預設即可。
  • 建庫前在 init.ora 設定 db_block_size=new_size。

Solaris 緩衝區快取與 Oracle 緩衝區快取平衡

  • 原始裝置繞過 Solaris Buffer Cache,故可將 OS 快取縮小、Oracle Buffer Cache 放大。
  • 用 sar -b (Buffer Cache 命中率)、sar -w (交換)、sar -p (分頁) 觀察:命中率低 → 加大 Oracle Cache;交換/分頁高 → 縮小 Cache。

診斷輔助

善用 USER_DUMP_DEST/BACKGROUND_DUMP_DEST 下的 Trace (.trc) 與 Alert (.log) 檔案,快速定位 ORA- 錯誤、效能抖動根因。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved