欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

windows磁盤I/O的性能評估方法詳解

 更新時間:2019年09月19日 09:36:00   作者:岌岌可危  
這篇文章主要介紹了windows磁盤I/O的性能評估方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

通常,我們很容易觀察到數(shù)據(jù)庫服務(wù)器的內(nèi)存和CPU壓力。但是對I/O壓力沒有直觀的判斷方法。

磁盤有兩個重要的參數(shù): Seek time、 Rotational latency。正常的I/O計數(shù)為:①1000/(Seek time+Rotational latency)*0.75,在此范圍內(nèi)屬正常。當(dāng)達到85%的I/O計數(shù)以上時則基本認(rèn)為已經(jīng)存在I/O瓶勁。

理論情況下,磁盤的隨機讀計數(shù)為125、順序讀計數(shù)為225。對于數(shù)據(jù)文件而言是隨機讀寫,日志文件是順序讀寫。因此,數(shù)據(jù)文件建議存放于RAID5上,而日志文件存放于RAID10或RAID1中。

下面假設(shè)在有4塊硬盤的RAID5中觀察到的Physical Disk性能對象的部分值:

  • Avg. Disk Queue Length 12
  • Avg. Disk Sec/Read .035
  • Avg. Disk Sec/Write .045
  • Disk Reads/sec 320
  • Disk Writes/sec 100
  • Avg. Disk Queue Length,12/4=3,每塊磁盤的平均隊列建議不超過2。
  • Avg. Disk Sec/Read一般不要超過11~15ms。
  • Avg. Disk Sec/Write一般建議小于12ms。

從上面的結(jié)果,我們看到磁盤本身的I/O能力是滿足我們的要求的,原因是因為有大量的請求才導(dǎo)致隊列等待,這很可能是因為你的SQL語句導(dǎo)致大量的表掃描所致。在進行優(yōu)化后,如果還是不能達到要求,下面的公式可以幫助你計算使用幾塊硬盤可以滿足這樣的并發(fā)要求:

  • Raid 0 -- I/Os per disk = (reads + writes) / number of disks
  • Raid 1 -- I/Os per disk = [reads + (2 * writes)] / 2
  • Raid 5 -- I/Os per disk = [reads + (4 * writes)] / number of disks
  • Raid 10 -- I/Os per disk = [reads + (2 * writes)] / number of disks

我們得到的結(jié)果是:(320+400)/4=180,這時你可以根據(jù)公式①來得到磁盤的正常I/O值。假設(shè)現(xiàn)在正常I/O計數(shù)為125,為了達到這個結(jié)果:720/125=5.76。就是說要用6塊磁盤才能達到這樣的要求。

但是上面的Disk Reads/sec和Disk Writes/sec是個很難正確估算的值。因此只能在系統(tǒng)比較忙時,大概估算一個平均值,作為計算公式的依據(jù)。另一個是你很難從客戶那里得到Seek time、Rotational latency參數(shù)的值,這也只能用理論值125進行計算。

如何通過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

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

當(dāng)選擇_Total實例的時候, 該計數(shù)器會重新計算每個盤總和.

PhysicalDisk對象沒有這個計數(shù)器.

LogicalDisk|PhysicalDisk\

Avg. Disk Bytes/Transfer

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

當(dāng)衡量最大吞吐量的時候, 應(yīng)該觀察這個計數(shù)器.

要進一步地分析數(shù)據(jù)傳輸, 應(yīng)當(dāng)查看Avg. Disk Bytes/Read 和Avg. Disk Bytes/Write兩個計數(shù)器.

LogicalDisk|PhysicalDisk\

Avg. Disk sec/Transfer

標(biāo)示著數(shù)據(jù)被移動的速度(以秒衡量). 衡量每次數(shù)據(jù)傳輸?shù)钠骄鶗r間, 而不論讀或?qū)懙臄?shù)據(jù)的大小. 它展示了從數(shù)據(jù)離開Diskperf.sys, 到操作完成的讀或?qū)懙目倳r間.

這個計數(shù)器的高數(shù)值可能意味著系統(tǒng)因為隊列太長而在重試請求, 或者由于不常見地磁盤錯誤而重試請求.

要進一步地分析數(shù)據(jù)傳輸, 應(yīng)當(dāng)查看Avg. Disk sec/Read 和Avg. Disk sec/Write兩個計數(shù)器.

LogicalDisk|PhysicalDisk\

Avg. Disk Queue Length

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

如果有多于兩個的請求持續(xù)地在一個單磁盤的系統(tǒng)中等待, 那么磁盤可能就是瓶頸.

要進一步地分析隊列長度的數(shù)據(jù), 應(yīng)當(dāng)查看Avg. Disk Read Queue Length 和Avg. Disk Write Queue Length兩個計數(shù)器.

LogicalDisk|PhysicalDisk\

Current Disk Queue Length

標(biāo)示著當(dāng)前正在等待的磁盤請求的數(shù)量, 也包括正在被處理的請求.

受許多因素的影響, 除非工作量的狀態(tài)比較穩(wěn)定, 并且你收集了充足的采樣, 才能建立一個模式.

這是一個即刻的數(shù)值或是當(dāng)前隊列的長度, 跟Avg. Disk Queue Length, Avg. Disk Read Queue Length, 和Avg. Disk Write Queue Length不一樣, 那三個反應(yīng)的是平均值.

LogicalDisk|PhysicalDisk\

Disk Bytes/sec

標(biāo)示著字節(jié)被傳輸?shù)乃俾? 該計數(shù)器是磁盤吞吐量的主要衡量指標(biāo).

要進一步地分析讀或?qū)懙膫鬏數(shù)臄?shù)據(jù), 應(yīng)當(dāng)分別查看Disk Read Bytes/sec 或Disk Write Bytes/sec兩計數(shù)器.

LogicalDisk|PhysicalDisk\

Disk Transfers/sec

標(biāo)示著每秒鐘完成的讀和寫操作數(shù), 而不論這些讀寫操作涉及到多少數(shù)據(jù). 該計數(shù)器衡量磁盤的利用率.

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

要進一步地分析讀或?qū)懙臄?shù)據(jù)傳輸, 應(yīng)當(dāng)分別查看Disk Read/sec 和Disk Writes/sec

LogicalDisk\

Free Megabytes

匯報磁盤上沒被分配的字節(jié)的量.

PhysicalDisk對象上, 沒有這個計數(shù)器.

LogicalDisk|PhysicalDisk\

Split IO/sec

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

影響IO請求大小的因素可以包括應(yīng)用程序設(shè)計, 文件系統(tǒng), 驅(qū)動程序. 高比率的split I/O可能本身不會作為一個問題出現(xiàn). 然而, 在單磁盤系統(tǒng)中, 這個計數(shù)器的高數(shù)值趨向于標(biāo)志著磁盤碎片.

LogicalDisk|PhysicalDisk\

% Disk Time

報告選擇的磁盤驅(qū)動器忙于服務(wù)讀寫請求的時間比率. 因為這個計數(shù)器的數(shù)據(jù)會跨越多個采樣, 持續(xù)地夸大磁盤利用率, 那這個值跟%Idle Time比較, 這樣能獲得更清晰的認(rèn)識.

默認(rèn)這個計數(shù)器的值不會超過100%的.

LogicalDisk|PhysicalDisk\

% Disk Write Time

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

LogicalDisk|PhysicalDisk\

% Disk Read Time

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

LogicalDisk|PhysicalDisk\

% Idle Time

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

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論