承接中集,本文著重於作業系統層面的極致調校,展示 Linux 核心版本升級、關閉 atime 更新、bdflush 參數調整對 Oracle TPC-C 基準測試的實測成果。
核心 2.4 系列在 SMP 支援、排程器、記憶體管理上大幅優化,效能明顯提升。
Linux 預設每次讀取檔案都會更新 atime,產生額外 I/O。對資料庫資料檔此資訊無關緊要。
chattr +A file_namechattr -R +A directory_name/etc/fstab,在檔系統掛載選項加入 noatime實測成果: Load Time 5.58 秒,TPS 13.884
修改 /etc/sysctl.conf 加入:
vm.bdflush = 100 1200 128 512 15 5000 500 1884 2
參數含義(依序):
nfract (100%):髒緩衝區上限百分比,調高可延遲寫入磁碟。ndirty (1200):bdflush 單次最多寫入的髒緩衝區數。nrefill (128):refill_freelist() 時加入自由緩衝區上限。nref_dirt (512):自由緩衝區中髒塊超過此值喚醒 bdflush。age_buffer (15*HZ)、age_super (5*HZ):髒緩衝區最長驻留時間 (jiffies)。實測成果: Load Time 4.43 秒,TPS 14.988
經由資料庫參數調整 (上、中集) 與 OS 核心/I/O 子系統調校 (下集),最終達成:
證實系統層面調校對資料庫效能有決定性影響,建議生產環境依硬體規格參考調整。