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

Oracle 效能極致優化 (下):Linux 核心參數調校與 I/O 子系統優化實測

     編輯:Oracle 資料庫基礎

承接中集,本文著重於作業系統層面的極致調校,展示 Linux 核心版本升級、關閉 atime 更新、bdflush 參數調整對 Oracle TPC-C 基準測試的實測成果。

OS 層面調校歷程與成果

OS2:升級次版本核心 (2.2.16-3 SMP)

  • Load Time: 9.40 秒
  • Transactions/Second: 11.522

OS3:升級主版本核心 (2.4.1 SMP)

  • Load Time: 8.32 秒
  • Transactions/Second: 12.815

核心 2.4 系列在 SMP 支援、排程器、記憶體管理上大幅優化,效能明顯提升。

OS4:關閉 atime 更新 (noatime 掛載選項)

Linux 預設每次讀取檔案都會更新 atime,產生額外 I/O。對資料庫資料檔此資訊無關緊要。

  • 單一檔案:chattr +A file_name
  • 整個目錄:chattr -R +A directory_name
  • 最佳做法: 修改 /etc/fstab,在檔系統掛載選項加入 noatime

實測成果: Load Time 5.58 秒,TPS 13.884

OS5:調整虛擬記憶體 bdflush 參數

修改 /etc/sysctl.conf 加入:

vm.bdflush = 100 1200 128 512 15 5000 500 1884 2

參數含義(依序):

  1. nfract (100%):髒緩衝區上限百分比,調高可延遲寫入磁碟。
  2. ndirty (1200):bdflush 單次最多寫入的髒緩衝區數。
  3. nrefill (128):refill_freelist() 時加入自由緩衝區上限。
  4. nref_dirt (512):自由緩衝區中髒塊超過此值喚醒 bdflush。
  5. age_buffer (15*HZ)、age_super (5*HZ):髒緩衝區最長驻留時間 (jiffies)。
  6. 其餘參數系統保留未使用。

實測成果: Load Time 4.43 秒,TPS 14.988

總結

經由資料庫參數調整 (上、中集) 與 OS 核心/I/O 子系統調校 (下集),最終達成:

  • Load Time 減少 1015.35% (從基準大幅下降)
  • TPS 提升 45.61%

證實系統層面調校對資料庫效能有決定性影響,建議生產環境依硬體規格參考調整。

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