天天看點

Windows性能計數器2

判斷瓶頸

Ø 判斷應用程式的問題

  如果系統由于應用程式代碼效率低下或者系統結構設計有缺陷而導緻大量的上下文切換(context switches/sec顯示的上下文切換次數太高)那麼就會占用大量的系統資源,如果系統的吞吐量降低并且CPU的使用率很高,并且此現象發生時切換水準在15000以上,那麼意味着上下文切換次數過高.

Windows性能計數器2

  從圖的整體看.context switches/sec變化不大,throughout曲線的斜率較高,并且此時的contextswitches/sec已經超過了15000.程式還是需要進一步優化.

Ø 判斷CPU瓶頸

如果processor queue length顯示的隊列長度保持不變(>=2)個并且處理器的使用率%Processortime超過90%,那麼很可能存在處理器瓶頸.如果發現processor queue length顯示的隊列長度超過2,而處理器的使用率卻一直很低,或許更應該去解決處理器阻塞問題,這裡處理器一般不是瓶頸.

Windows性能計數器2

%processor time平均值大于95,processor queue length大于2.可以确定CPU瓶頸.此時的CPU已經不能滿足程式需要.急需擴充.

CPU資源成為系統性能的瓶頸的征兆:

很慢的響應時間(slow response time)

CPU空閑時間為零(zero percent idle CPU)

過高的使用者占用CPU時間(%User Time)

過高的系統占用CPU時間(%Priviliaged Time:長期大于90%或者95%)

長時間的有很長的運作程序隊列(Process Queue Lengt:大于處理器個數+1)

Ø 判斷記憶體洩露問題

  記憶體問題主要檢查應用程式是否存在記憶體洩漏,如果發生了記憶體洩漏,process\private bytes計數器和process\working set 計數器的值往往會升高,同時avaiable bytes的值會降低.記憶體洩漏應該通過一個長時間的,用來研究分析所有記憶體都耗盡時,應用程式反應情況的測試來檢驗.

Windows性能計數器2

圖中可以看到該程式并不存在記憶體洩露的問題.記憶體洩露問題經常出現在服務長時間運轉的時候,由于部分程式對記憶體沒有釋放,而将記憶體慢慢耗盡.也是提醒大家對系統穩定性測試的關注.

Windows資源監控中,如果Process\Private Bytes計數器和Process\Working Set計數器的值在長時間内持續升高,同時Memory\Available bytes計數器的值持續降低,則很可能存在記憶體洩漏。

Ø 判斷記憶體不足

 如果隊列長度(Avg.Disk Queue Length)增加的同時頁面讀取速率(Page Reads/sec)并未降低,則記憶體不足。

如果Available Mbytes(剩餘實體記憶體數)的值很小(4 MB 或更小),則說明計算機上總的記憶體可能不足,或某程式沒有釋放記憶體。

Ø 硬體問題

請觀察 Processor\ Interrupts/sec 計數器的值,該計數器測量來自輸入/輸出 (I/O) 裝置的服務請求的速度。如果此計數器的值明顯增加,而系統活動沒有相應增加,則表明存在硬體問題。

Ø I/O資源成為系統性能的瓶頸的征兆

IO Data Bytes/sec(處理從I/O操作讀取/寫入位元組的速度。這個計數器為所有由本處理産生的包括檔案、網絡和裝置I/O的活動計數。)

IO Data Operations/sec

IO Other Bytes/sec

IO Other Operations/sec

IO Read Bytes/sec(每秒IO讀取位元組數)

IO Read Operations/sec

IO Write Bytes/sec(每秒IO寫出位元組數)

IO Write Operations/sec

過高的磁盤使用率(high disk utilization) 

太長的磁盤等待隊列(Physical Disk\ Current Disk Queue Length,正在等待磁盤通路的系統請求數量) 

等待磁盤I/O的時間所占的百分率太高(Average Disk Queue Length) 

太高的實體I/O速率:large physical I/O rate(not sufficient in itself) 

過低的緩存命中率(low buffer cache hit ratio(not sufficient in itself)) 

太長的運作程序隊列,但CPU卻空閑(Process Queue Length)

在方案運作中,如果出現了大于3個使用者的業務操作失敗,或出現了伺服器shutdown的情況,則說明在目前環境下,系統承受不了目前并發使用者的負載壓力,那麼最大并發使用者數就是前一個沒有出現這種現象的并發使用者數

Ø 監視磁盤的使用情況

監視磁盤活動涉及兩個主要方面:

  • 監視磁盤 I/O 及檢測過度換頁
  • 隔離 SQL Server 産生的磁盤活動

監視磁盤 I/O 及檢測過度換頁

可以對下面兩個計數器進行監視以确定磁盤活動:

  • PhysicalDisk: % Disk Time
  • PhysicalDisk: Avg. Disk Queue Length

在系統螢幕中,PhysicalDisk:% Disk Time計數器監視磁盤忙于讀/寫活動所用時間的百分比。如果 PhysicalDisk: % Disk Time計數器的值較高(大于 90%),請檢查PhysicalDisk: Current Disk Queue Length計數器了解等待進行磁盤通路的系統請求數量。等待 I/O 請求的數量應該保持在不超過組成實體磁盤的軸數的 1.5 到 2 倍。大多數磁盤隻有一個軸,但獨立磁盤備援陣列 (RAID) 裝置通常有多個軸。硬體 RAID 裝置在系統螢幕中顯示為一個實體磁盤。通過軟體建立的多個 RAID 裝置在系統螢幕中顯示為多個執行個體。

可以使用 Current Disk Queue Length和 % Disk Time計數器的值檢測磁盤子系統中的瓶頸。如果 Current Disk Queue Length和 % Disk Time計數器的值一直很高,則考慮下列事項:

  • 使用速度更快的磁盤驅動器。
  • 将某些檔案移至其他磁盤或伺服器。
  • 如果正在使用一個 RAID 陣列,則在該陣列中添加磁盤。

如果使用 RAID 裝置,% Disk Time計數器會訓示大于 100% 的值。如果出現這種情況,則使用 PhysicalDisk: Avg.Disk Queue Length計數器來确定等待進行磁盤通路的平均系統請求數量。

I/O 依賴的應用程式或系統可能會使磁盤持續處于活動狀态。

監視 Memory: Page Faults/sec計數器可以確定磁盤活動不是由分頁導緻的。在 Windows 中,換頁的原因包括:

  • 配置程序占用了過多記憶體。
  • 檔案系統活動。

如果在同一硬碟上有多個邏輯分區,請使用 Logical Disk計數器而非 Physical Disk計數器。檢視邏輯磁盤計數器有助于确定哪些檔案被頻繁通路。當發現磁盤有大量讀/寫活動時,請檢視讀寫專用計數器以确定導緻每個邏輯卷負荷增加的磁盤活動類型,例如,Logical Disk: Disk Write Bytes/sec。

Ø 判斷磁盤瓶頸

Disk Time和Avg.Disk Queue Length的值很高,而Page Reads/sec頁面讀取操作速率很低,則可能存在磁盤瓶徑。

Physical Disk\ Disk Reads/sec and Disk Writes/sec

Physical Disk\ Current Disk Queue Length

Physical Disk\ % Disk Time

LogicalDisk\ % Free Space

  測試磁盤性能時,将性能資料記錄到另一個磁盤或計算機,以便這些資料不會幹擾您正在測試的磁盤。

  可能需要觀察的附加計數器包括 Physical Disk\ Avg.Disk sec/Transfer 、Avg.DiskBytes/Transfer,和Disk Bytes/sec。

Avg.Disk sec/Transfer 計數器反映磁盤完成請求所用的時間。較高的值表明磁盤控制器由于失敗而不斷重試該磁盤。這些故障會增加平均磁盤傳送時間。對于大多數磁盤,較高的磁盤平均傳送時間是大于 0.3 秒。

  也可以檢視 Avg.Disk Bytes/Transfer 的值。值大于 20 KB 表示該磁盤驅動器通常運作良好;如果應用程式正在通路磁盤,則會産生較低的值。例如,随機通路磁盤的應用程式會增加平均 Disk sec/Transfer 時間,因為随機傳送需要增加搜尋時間。

Disk Bytes/sec 提供磁盤系統的吞吐率。

  決定工作負載的平衡要平衡網絡伺服器上的負載,需要了解伺服器磁盤驅動器的繁忙程度。使用 Physical Disk\ %Disk Time 計數器,該計數器顯示驅動器活動時間的百分比。如果 % Disk Time 較高(超過90%),請檢查 Physical Disk\ Current Disk Queue Length 計數器以檢視正在等待磁盤通路的系統請求數量。等待 I/O 請求的數量應當保持在不大于組成實體磁盤的主軸數的 1.5 到2倍。

  盡管廉價磁盤備援陣列 (RAID) 裝置通常有多個主軸,大多數磁盤有一個主軸。硬體 RAID裝置在“系統螢幕”中顯示為一個實體磁盤;通過軟體建立的 RAID 裝置顯示為多個驅動器(執行個體)。可以監視每個實體驅動器(而不是 RAID)的 Physical Disk 計數器,也可以使用 _Total 執行個體來監視所有計算機驅動器的資料。

使用 Current Disk Queue Length 和 % Disk Time 計數器來檢測磁盤子系統的瓶頸。如果Current Disk Queue Length 和 % Disk Time 的值始終較高,可以考慮更新磁盤驅動器或将某些檔案移動到其他磁盤或伺服器。

繼續閱讀