核心效能計數器監控指南
有效監控 SQL Server 效能需關注作業系統與 SQL Server 專屬計數器。以下整理關鍵指標的閾值判斷與排查方向:
記憶體相關
Memory: Pages/sec (分頁錯誤/秒)
- 偶發飆高:表示當時有執行緒爭奪記憶體,屬正常現象。
- 持續極高:記憶體可能已成瓶頸,需考慮增加實體記憶體或檢查應用程式記憶體洩漏。
Process: Working Set (工作集) - SQL Server 執行個體
- 此值應極接近指派給 SQL Server 的記憶體設定值。
sp_configure 'set working set size' 預設為 0 (由 Windows 管理),建議保持預設,避免強制鎖定記憶體導致系統分頁。
處理器相關
Process: % Processor Time (SQL Server 程序)
- 持續超過 95% 顯示 CPU 為瓶頸。解決方案:增加處理器、升級更快 CPU、或優化高耗 CPU 查詢 (如缺少索引、錯誤連接)。
Processor: % Privileged Time (核心模式時間)
- 若此值與「Physical Disk」計數器同步偏高,通常代表 I/O 子系統壓力大 (驅動程式、磁碟控制器)。
- 緩解措施:更換高速磁碟陣列、將
tempdb 置於 RAM、降低 max async IO 與 max lazywriter IO 設定。
Processor: % User Time (使用者模式時間)
- 反映資料庫操作耗用 CPU (排序、彙總函數、複雜連接)。
- 優化建議:增加適當索引、簡化資料表連接、水平分割大型資料表。
磁碟 I/O 相關
Physical Disk: Avg. Disk Queue Length (平均磁碟佇列長度)
- 建議值不超過磁碟數量的 1.5~2 倍 (注意:RAID 陣列包含多顆實體磁碟)。
- 超標時需增加磁碟數量或調整檔案群佈局分散 I/O 負載。
SQL Server 快取
SQLServer: Cache Hit Ratio (快取命中率)
- 越高越好,持續低於 80% 應考慮增加記憶體。
- 注意:此為啟動後累計值,長時間運行後無法反映即時狀態,建議搭配
DBCC MEMORYSTATUS 或效能監視器區間觀察。