通過Windows常見性能計數器分析服務器性能瓶頸


轉載 http://www.cnblogs./junzhongxu/archive/2011/02/15/1954889.html

監測對象

Ø System(系統)

l %Total Processor Time

系統中所有處理器都處於繁忙狀態的時間百分比,對於多處理器系統來說,該值可以反映所有處理器的平均繁忙狀態,該值為100%,如果有一半的處理器為繁忙狀態,該值為50%服務器。器消耗的處理器時間數量.如果服務器專用於sql server可接受的最大上限是80% -85 %.也就是常見的CPU 使用率. l File Data Operations/sec

計算機對文件系統進行讀取和寫入操作的頻率,但是不包括文件控制操作 l Process Queue Length

線程在等待分配CPU資源所排隊列的長度,此長度不包括正在占有CPU資源的線程。如果該隊列的長度大於處理器個數+1,就表示處理器有可能處於阻塞狀態(參考值:<=處理器個數+1)

Ø Processor(處理器)

l %Processor Time

CPU利用率,該計數器最為常用,可以查看處理器是否處於飽和狀態,如果該值持續超過 95%,就表示當前系統的瓶頸為CPU,可以考慮增加一個處理器或更換一個性能更好的處理器。(參考值:<80%)

l %Priviliaged Time

CPU在特權模式下處理線程所花的時間百分比。一般的系統服務,進城管理,內存管理等一些由操作系統自行啟動的進程屬於這類

l %User Time

與%Privileged Time計數器正好相反,指的是在用戶狀態模式下(即非特權模式)的操作所花的時間百分比。如果該值較大,可以考慮是否通過算法優化等方

法降低這個值。如 果該服務器是數據庫服務器,導致此值較大的原因很可能是數據庫的排序或是函數操作消耗了過多的CPU時間,此時可以考慮對數據庫系統進行優化。表示耗費 CPU的數據庫操作,如排序,執行aggregate functions等。如果該值很高,可考慮增加索引,盡量使用簡單的表聯接,水平分割大表格等方法來降低該值。

l %DPC Time

處理器在網絡處理上消耗的時間,該值越低越好。越低越好。在多處理器系統中,如果這個值大於50%並且Processor:% Processor Time非常高,加入一個網卡可能會提高性能,提供的網絡已經不飽和。

Ø Memory(內存)

l Page Faults/sec

當處理器在內存中讀取某一頁出現錯誤時,就會產生缺頁中斷,也就是 page Fault。如果這個頁位於內存的其他位 置,這種錯誤稱為軟錯誤,用Transition Fault/sec 來衡量;如果這個頁位於硬盤上,必須從硬盤重新讀取,這個錯誤成為硬錯誤。硬錯誤會使系統的運行效率很快將下來。Page Faults/sec這個計數器就表示每秒鍾處理的錯誤頁數,包括硬錯誤和軟錯誤。

l Page Input/sec

表示為了解決硬錯誤而寫入硬盤的頁數(參考值:>=Page Reads/sec) l Page Reads/sec

表示為了解決硬錯誤而從硬盤上讀取的頁數。

l Page/sec

表示為了解決硬錯誤而從硬盤上讀取或寫入硬盤的頁數(參考值:00~20) l Pages per second:

每秒鍾檢索的頁數。該數字應少於每秒一頁Working set:理線程最近使用的內存頁,反映了每一個進程使用的內存頁的數量。如果服務器有足夠的空閑內存,頁就會被留在工作集中,當自由內存少於一個特定的閾值時,頁就會被清除出工作集。

l Available Mbytes

剩余的可用物理內存,單位是兆字節(參考值:>=10%)用物理內存數. 如果Available Mbytes的值很小(4 MB 或更小),則說明計算機上總的內存可能不足,或某程序沒有釋放內存。

l Cathe Bytes

文件系統的緩存(默認為50%的可用物理內存)

Ø Process(進程)

l private Bytes

進程無法與其他進程共享的字節數量。該計數器的值較大時,有可能是內存泄露的信號

l Work set

最近處理線程使用的內存頁

Ø PhysicalDisk(磁盤)

l %Disk Time

表示磁盤驅動器為讀取或寫入請求提供服務所用的時間百分比,如果只有%Disk Time比較大,硬盤有可能是瓶頸。指所選磁盤驅動器忙於為讀或寫入請求提供服務所用的時間的百分比。如果三個計數器都比較大,那么硬盤不是瓶頸。如果只 有%Disk Time比較大,另外兩個都比較適中,硬盤可能會是瓶頸。在記錄該計數器之前,請在Windows 2000的命令行窗口中運行diskperf -yD。若數值持續超過80%,則可能是內存泄漏。應當總小於90%

l Average Disk Queue Length

表示磁盤讀取和寫入請求提供服務所用的時間百分比,可以通過增加磁盤構造磁盤陣列來提高性能(<=磁盤數的2倍)讀取和寫入請求(為所選磁盤 在實例間隔中列隊的)的平均數。該值應不超過磁盤數的1.5~2 倍。要提高性能,可增加磁盤。注意:一個Raid Disk實際有多個磁盤。不應當超過物理磁盤數量的2倍,正常值<0.5

l Average Disk Read Queue Length

表示磁盤讀取請求的平均數

l Average Disk write Queue Length

表示磁盤寫入請求的平均數

l Average Disk sec/Read

磁盤中讀取數據的平均時間,單位是秒

l Average Disk sec/Transer

磁盤中寫入數據的平均時間,單位是秒,一般來說,定義該值小於15ms最為優異,介於15-30ms之間為良好,30-60ms之間為可以接受,超過60ms則需要考慮更換硬盤或硬盤的RAID方式了

l %Disk reads/sec(physicaldisk_total):

每秒讀硬盤字節數. 該指標應總小於磁盤I/O子系統的容量

l %Disk write/sec(physicaldisk_total):

每秒寫硬盤字節數. 該指標應當總小於硬盤I/O子系統的容量

l Disk Bytes/sec

指在進行寫入或讀取操作時從磁盤上傳送或傳出的字節速率。

此值取決於硬盤的速度

l Disk Transfers/sec

指在此盤上讀取/寫入操作速率。

正常值<(Disk Bytes/sec)/3,此值過大表示系統要求的IO速度已接近硬盤的最大速度,要更換更快的硬盤 D

Ø Network Interface(網絡)

l Byte Total/sec

表示網絡中接受和發送字節的速度,可以用該計數器來判斷網絡是否存在瓶頸(參考值:該計數器和網絡帶寬相除,<50%)

判斷瓶頸

Ø 判斷應用程序的問題

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

.

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

如果processor queue length顯示的隊列長度保持不變(>=2)個並且處理器的利用率%Processortime超過90%,那么很可能存在處理器瓶頸.如果發現

processor queue length顯示的隊列長度超過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) Ø 判斷內存泄露問題

內存問題主要檢查應用程序是否存在內存泄漏,如果發生了內存泄

漏,processprivate bytes計數器和processworking set 計數器的值往往會升高,同時avaiable bytes的值會降低.內存泄漏應該通過一個長時間的,用來研究分析所有內存都耗盡時,應用程序反應情況的測試來檢驗

.

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

Windows資源監控中,如果ProcessPrivate Bytes計數器和ProcessWorking Set計數器的值在長時間內持續升高,同時MemoryAvailable 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 的值始終較高,可以考慮升級磁盤驅動器或將某些文件移動到其他磁盤或服務器。

本文檔下載自360文檔中心,www.360docs.net更多營銷,職業規划,工作簡歷,入黨,工作報告,總結,學習資料,學習總結,PPT模板下載,范文等文檔下載;轉載請保留出處:http://www.360docs.net/doc/info-4357972e647d27284b7351e0.html


免責聲明!

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



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