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

SQL Server 2008 CPU 架構與效能監控指南

     編輯:關於SqlServer

伺服器 CPU 三大架構

架構全稱特性優點缺點
SMPSymmetric Multi Processing多 CPU 對稱連接共享記憶體,均等存取成本記憶體存取一致、程式設計簡單總線競爭隨 CPU 增加劇增,擴展性受限 (通常數十顆)
MPPMassive Parallel Processing邏輯分節點,各節點獨立資源 (CPU/記憶體/磁碟),無共享擴展性極佳節點間資料交換需軟體協調,複雜度高、一般應用效率低
NUMANon-Uniform Memory Access邏輯分節點,可存取本地/遠端記憶體,本地遠快於遠端兼顧 SMP/MPP 優點、易管理、擴展性好遠端記憶體存取延遲大

SQL Server 對架構的支援演進

  • SQL 2000 SP4:開始支援 NUMA
  • SQL 2005:全面採用 NUMA
  • SQL 2008 R2:新增 MPP 支援 (PDW)
  • 主流部署:SMP 與 NUMA 為主

NUMA 架構下的 SQL Server 行為

  • 自動偵測 NUMA 拓撲,建立對應的排程器節點
  • 記憶體分配傾向本地節點 (Local Memory)
  • 工作負載盡量排程在本地 NUMA 節點
  • 可透過 trace flag 8048 將記憶體物件分割到 NUMA 節點層級

CPU 效能監控關鍵指標

計數器建議閾值說明
Processor(_Total)\% Processor Time< 80% (持續)整體 CPU 使用率
System\Processor Queue Length< 2 × CPU 核心數等待排程的執行緒數
SQLServer:SQL Statistics\Batch Requests/sec-吞吐量基準
SQLServer:SQL Statistics\SQL Compilations/sec< 10% of Batch Requests編譯頻率過高表示計畫重用差
SQLServer:SQL Statistics\SQL Re-Compilations/sec< 10% of Compilations重編譯頻率
sys.dm_os_schedulersrunnable_tasks_count = 0排程器可執行任務佇列
sys.dm_os_wait_statsSOS_SCHEDULER_YIELD 低CPU 壓力等待類型

常見 CPU 壓力成因與對策

NUMA 環境特殊檢查

-- 檢視 NUMA 節點與排程器對應
SELECT parent_node_id, scheduler_id, cpu_id, status, is_online
FROM sys.dm_os_schedulers
WHERE status = 'VISIBLE ONLINE'
ORDER BY parent_node_id, scheduler_id;

-- 檢視記憶體節點
SELECT * FROM sys.dm_os_memory_nodes;
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
成因徵兆對策
計畫快取污染 (Ad-hoc)Compilations/sec 高、計畫快取大量單用計畫啟用 OPTIMIZE FOR AD HOC WORKLOADS、強制參數化
缺少索引/統計過期掃描大量資料、CPU 做運算而非 I/O補索引、更新統計、查詢改寫
平行度過高CXPACKET 等待高、小查詢也平行調整 MAXDOP、Cost Threshold for Parallelism
過度編譯/重編譯Recompilations/sec 高穩定計畫、避免臨時表重建、KEEPFIXED PLAN
CLR/擴展預存程序非 SQL 程式碼消耗 CPU審查 CLR 程式碼、移至應用層