如何通過Performance Log確定SQL的磁盤有性能問題?


1. 查看Disk Bytes/sec. 舉個例子, 這個counter的最大值如果是11M, 那么說明work load並不高.

2. 查看Avg. Disk sec/Transfer. 舉例, 這個counter的推薦值是<0.015.

3. 查看Avg. Disk Queue Length, 這個推薦值是<2.

 

一些比較重要的performance counter:

Counter

Description

LogicalDisk\

% Free Space

報告磁盤空間中未被分配的空間占邏輯卷中總可用空間的百分比.

當選擇_Total實例的時候, 該計數器會重新計算每個盤總和.

PhysicalDisk對象沒有這個計數器.

LogicalDisk|PhysicalDisk\

Avg. Disk Bytes/Transfer

衡量輸入/輸出(I/O)操作的數據量的大小. 如果磁盤相對快速地傳輸大量數據, 那么磁盤是高效的.

當衡量最大吞吐量的時候, 應該觀察這個計數器.

要進一步地分析數據傳輸, 應當查看Avg. Disk Bytes/Read 和Avg. Disk Bytes/Write兩個計數器.

LogicalDisk|PhysicalDisk\

Avg. Disk sec/Transfer

標示着數據被移動的速度(以秒衡量). 衡量每次數據傳輸的平均時間, 而不論讀或寫的數據的大小. 它展示了從數據離開Diskperf.sys, 到操作完成的讀或寫的總時間.

這個計數器的高數值可能意味着系統因為隊列太長而在重試請求, 或者由於不常見地磁盤錯誤而重試請求.

要進一步地分析數據傳輸, 應當查看Avg. Disk sec/Read 和Avg. Disk sec/Write兩個計數器.

LogicalDisk|PhysicalDisk\

Avg. Disk Queue Length

記錄了在計數器數據采樣點之間的時間內被放入隊列中等待磁盤的請求的數量, 也包括正在被處理的請求在內. 所以, 這有可能是有點誇大的數據.

如果有多於兩個的請求持續地在一個單磁盤的系統中等待, 那么磁盤可能就是瓶頸.

要進一步地分析隊列長度的數據, 應當查看Avg. Disk Read Queue Length 和Avg. Disk Write Queue Length兩個計數器.

LogicalDisk|PhysicalDisk\

Current Disk Queue Length

標示着當前正在等待的磁盤請求的數量, 也包括正在被處理的請求.

受許多因素的影響, 除非工作量的狀態比較穩定, 並且你收集了充足的采樣, 才能建立一個模式.

這是一個即刻的數值或是當前隊列的長度, 跟Avg. Disk Queue Length, Avg. Disk Read Queue Length, 和Avg. Disk Write Queue Length不一樣, 那三個反應的是平均值.

LogicalDisk|PhysicalDisk\

Disk Bytes/sec

標示着字節被傳輸的速率, 該計數器是磁盤吞吐量的主要衡量指標.

要進一步地分析讀或寫的傳輸的數據, 應當分別查看Disk Read Bytes/sec 或Disk Write Bytes/sec兩計數器.

LogicalDisk|PhysicalDisk\

Disk Transfers/sec

標示着每秒鍾完成的讀和寫操作數, 而不論這些讀寫操作涉及到多少數據. 該計數器衡量磁盤的利用率.

如果該值超過50(如果是striped的分卷, 那就是看平均到每塊物理磁盤上), 那么這可能就是一個瓶頸了.

要進一步地分析讀或寫的數據傳輸, 應當分別查看Disk Read/sec 和Disk Writes/sec

LogicalDisk\

Free Megabytes

匯報磁盤上沒被分配的字節的量.

PhysicalDisk對象上, 沒有這個計數器.

LogicalDisk|PhysicalDisk\

Split IO/sec

匯報操作系統將I/O請求分為多個磁盤請求的比率. 如果一個程序請求的數據大小太大, 以至於不能放在一個單個請求中, 或是磁盤有碎片, 那么一個split I/O請求可能會發生.

影響IO請求大小的因素可以包括應用程序設計, 文件系統, 驅動程序. 高比率的split I/O可能本身不會作為一個問題出現. 然而, 在單磁盤系統中, 這個計數器的高數值趨向於標志着磁盤碎片.

LogicalDisk|PhysicalDisk\

% Disk Time

報告選擇的磁盤驅動器忙於服務讀寫請求的時間比率. 因為這個計數器的數據會跨越多個采樣, 持續地誇大磁盤利用率, 那這個值跟%Idle Time比較, 這樣能獲得更清晰的認識.

默認這個計數器的值不會超過100%的.

LogicalDisk|PhysicalDisk\

% Disk Write Time

匯報被選擇的磁盤忙於處理寫請求所占的時間的百分比.

LogicalDisk|PhysicalDisk\

% Disk Read Time

匯報被選擇的磁盤忙於處理讀請求所占的時間的百分比.

LogicalDisk|PhysicalDisk\

% Idle Time

匯報磁盤系統沒在處理任何請求, 而且沒有任何工作在隊列中的時間的百分比. 注意這個計數器和%Disk Time相加的時候可能結果不是100%, 因為%Disk Time可能會誇打磁盤的利用率.

 

參考資料:

Examining and Tuning Disk Performance

http://technet.microsoft.com/en-us/library/cc938959.aspx


免責聲明!

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



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