Published 12月 23, 2013 by Kevin

研究Windows的硬碟效能-使用效能監視器與WMI

研究Windows的硬碟效能-使用效能監視器與WMI

硬碟首先要注意的就是,每顆硬碟應該要獨立監控,並且確認監控的項目是實體硬碟或者是邏輯硬碟.
首先,我們先觀測硬碟在I/O執行時的延遲時間.
PhysicalDisk: Avg. Disk sec/Write
PhysicalDisk: Avg. Disk sec/Read
LogicalDisk: Avg. Disk sec/Write
LogicalDisk: Avg. Disk sec/Read
WMI也分為邏輯磁碟與實體硬碟:
Win32_PerfFormattedData_PerfDisk_LogicalDisk
Win32_PerfFormattedData_PerfDisk_PhysicalDisk
值分別為:
AvgDiskSecPerRead
AvgDiskSecPerWrite
在大多數的環境下,I/O的平均讀取執行的延遲時間大概可以分成下列的等級:

  1. 小於10ms-非常好
  2. 介於10~20ms-正常
  3. 介於20~50ms-慢
  4. 大於50ms-差
如果在一個需要高回應時間的系統上,這一等級列表可能就不適用了.
如果所有的硬碟的延遲數值都很高,那也有可能是硬碟傳輸的介面或者是磁碟系統不適合系統的效能要求,則我們可以觀察其他的數值來確認問題.
首先來關心Disk Queue Length,這個數值是等待硬碟讀寫資料的排隊長度,這個數值跟所使用的硬碟數量有關,大體上而言,如果數值大於兩倍的硬碟數量,就表示效能上可能出現問題.
PhysicalDisk: Avg. Disk Queue Length
LogicalDisk: Avg. Disk Queue Length
WMI值為:
AvgDiskWriteQueueLength
再來是Disk Reads/sec,Disk writes/sec與Disk Transfers/sec,也就是系統目前的IOPS資料.
PhysicalDisk: Disk Reads/sec
PhysicalDisk: Disk Writes/sec
PhysicalDisk: Disk Transfers/sec
LogicalDisk: Disk Reads/sec
LogicalDisk: Disk Writes/sec
LogicalDisk: Disk Transfers/sec
WMI值為:
DiskReadsPerSec
DiskWritesPerSec
DiskTransfersPerSec
再根據這些IOPS的數值去計算所使用的磁碟陣列系統上,每顆硬碟大約的IOPS,就可以知道目前的硬碟規格與硬碟數量是否會對系統造成效能上的問題.計算的公式如下:
Raid 0
每顆硬碟的IOPS=(讀IOPS+寫IOPS)/硬碟數量
Raid 1
每顆硬碟的IOPS=(讀IOPS+兩倍寫IOPS)/硬碟數量
Raid 5
每顆硬碟的IOPS=(讀IOPS+四倍寫IOPS)/硬碟數量
Raid 10
每顆硬碟的IOPS=(讀IOPS+兩倍寫IOPS)/硬碟數量
另外硬碟的規格內如果沒有IOPS的資料,大約的算法是:
1/(搜尋時間+延遲時間)=IOPS
或者可以參考Wiki-IOPS,裡面有一些硬碟的IOPS資料.
參考資料:
Monitoring Disk Usage
Monitoring Queue Length
概述RAID磁盤IOPS
      edit