SqlServer性能瓶頸分析


SqlServer性能瓶頸分析

一、內存瓶頸分析--SQLServer:Buffer Manager

SELECT TOP 312 * FROM  sys.dm_os_performance_counters
where object_name ='SQLServer:Buffer Manager' order by counter_name


1.Buffer cache hit ratio  平均值>=90%                                                                                                         

緩沖區是創建數據頁面的緩沖頁面池,這一般是SQL server內存池中最大的部分。這個計數器應該盡可能高。

低值表示只有少數的請求是在緩沖區,其他請求是在磁盤獲取服務

這種情況發生可能是SQL server還在准備狀態下,或緩沖區的增長需求超過最大可用內存,因此如果此值比較低,應該考慮為系統增加內存。

2.Checkpoint pages/sec    平均值<30     

美好一個檢查點操作移到磁盤的頁面數量,這些值應該相當低,高值意味着緩沖中更多的頁面被標記為臟頁面。

臟頁面是在緩沖區中被修改的頁面。一旦被修改,就標記為臟並在下一個檢查點被寫回磁盤。

如果這個計數器較高說明系統發生大量的寫入操作,可能是I/O問題的征兆。                                                                                                

3.Lazy writes/sec     平均值<20            

 記錄了緩沖區管理器的Lazy write進程每秒寫入的緩沖區數量。這個進程會把時間較長的臟頁面從緩沖區中刪除,將內存釋放

 數值過高說明I/O有問題或是內存問題。                                                                                                

4.Page life expectancy     平均值>300        

頁面平均壽命,表示一個不被引用的頁面在緩沖池中停留的時間。數值低意味着頁面從緩沖區中被移走

降低了緩沖的效率並指出內存壓力的可能。                                                                                                    

SELECT TOP 312 * FROM  sys.dm_os_performance_counters
where object_name ='SQLServer:Memory Manager' order by counter_name

1.Memory Grants Pending      平均值=0

值高說明內存短缺,需要將進度掛起等待內存空閑

2. Target Server Memory(KB)     接近物理內存大小

表示SQLServer希望消耗的動態內存總數。

3.Total Server Memory (KB  )    接近於Target Server Memory
當前分配給SQLerver的總內存。 如果低於Target Server Memory

那么可能是SQLserver內存需求很低,服務器最大內存設置的太低

二、磁盤瓶頸分析  Physical Disk

%disk time 磁盤時間百分比 平均值<85%
CurrentDiskQueueLength 當前磁盤隊列長度  平均值<2
disk Transfers/sec 每秒磁盤傳輸數量  平均值<100
Disk Bytes/sec 每秒傳輸字節數 平均值<每秒10MB(該值需通過磁盤性能測試評估,不同磁盤指標不同)
avg.disk sec/read(write) 每次磁盤讀寫所需平均時間   平均值<10毫秒

三、cpu  processor

%process Time 處理器時間百分比 平均值<80%

%privileged time 特權時間百分比 平均值<10%

windows server 包括用戶模式和特權模式兩種 %privileged time為20%-25%表明系統正在進行大量的IO操作,一個專用的SQLserver系統%privileged time不能超過10%

sqlserver:SQL Statistics Batch Requests/sec 每秒接收到的sql命令批數  根據機器配置 一般1000為繁忙,超過1000應注意

               SQL Compilations/sec sql編譯次數  <100

               SQL Reompilations/sec sql重編譯次數

 

四 網絡

Network interface  bytes Total/sec 每秒總傳輸字節數  平均值<NIC容量的50%

NetworkSegment  %net utilization 網絡利用率 平均值<80%

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM