1. 程式人生 > >Windows常見效能計數器(轉載)

Windows常見效能計數器(轉載)

Windows常見效能計數器 Total Processor Time

http://bbs.51cto.com/thread-634300-1.html

效能計數器(counter)是描述伺服器或作業系統效能的一些資料指標。計數器在效能測試中發揮著“監控和分析”的關鍵作用,尤其是在分析系統的可擴充套件性、進行效能瓶頸的定位時,對計數器的取值的分析非常關鍵。但必須說明的是,單一的效能計數器只能體現系統性能的某一個方面,對效能測試結果的分析必須基於多個不同的計數器。

與效能計數器相關的另一個術語是“資源利用率”。該術語指的是系統各種資源的使用狀況。為了方便比較,一般用“資源的實際使用/總的資源可用量”形成資源利用率的資料,用以進行各種資源使用的比較。

效能測試之記憶體篇(windows)

要監視記憶體不足的狀況,請從以下的物件計數器開始:

· Memory\ Available Bytes

· Memory\ Pages/sec

Available Bytes剩餘的可用實體記憶體,單位是兆位元組(參考值:>=10%)。表明程序當前可使用的記憶體位元組數。Pages/sec 表明由於硬體頁面錯誤而從磁碟取出的頁面數,或由於頁面錯誤而寫入磁碟以釋放[url=]工作[/url]集空間的頁面數。

如果 Available Bytes 的值很小(4 MB 或更小),則說明計算機上總的記憶體可能不足,或某程式沒有釋放記憶體。如果 Pages/sec 的值為 20 或更大,那麼您應該進一步研究頁交換活動。Pages/sec 的值很大不一定表明記憶體有問題,而可能是執行使用記憶體對映檔案的程式所致。

作業系統經常會利用磁碟交換的方式提高系統可用的記憶體量或是提高記憶體的使用效率。下列四個
指標直接反映了作業系統進行磁碟交換的頻度。
Page Faults/sec
當處理器在記憶體中讀取某一頁出現錯誤時,就會產生缺頁中斷,也就是 page Fault。如果這個頁
位於記憶體的其他位置,這種錯誤稱為軟錯誤,用Transition Fault/sec 來衡量;如果這個頁位於硬碟上,必須從硬碟重新讀取,這個錯誤成為硬錯誤。硬錯誤會使系統的執行效率很快將下來。Page Faults/sec這個計數器就表示每秒鐘處理的錯誤頁數,包括硬錯誤和軟錯誤。
Page Input/sec
表示為了解決硬錯誤而寫入硬碟的頁數(參考值:>=Page Reads/sec)
Page Reads/sec
表示為了解決硬錯誤而從硬碟上讀取的頁數。(參考值: <=5)
Pages/sec
表示為了解決硬錯誤而從硬碟上讀取或寫入硬碟的頁數(參考值:00~20)

必須同時監視 Available Bytes、Pages/sec 和 Paging File % Usage,以便確定是否發生這種情況。如果正在讀取非快取記憶體對映檔案,還應該檢視快取活動是否正常。

Cathe Bytes
檔案系統的快取(預設為50%的可用實體記憶體)

記憶體洩露

· Memory\Available Bytes

· Memory\ Committed Bytes

如果您懷疑有記憶體洩露,請監視 Memory\Available Bytes 和 Memory\ Committed Bytes,以觀察記憶體行為,並監視你認為可能在洩露記憶體的程序的 Process\ Private Bytes、Process\ Working Set 和Process\ Handle Count。如果您懷疑是核心模式程序導致了洩露,則還應該監視 Memory\ Pool Nonpaged Bytes、Memory\ Pool Nonpaged Allocs 和 Process(process_name)\ Pool Nonpaged Bytes。

private Bytes
程序無法與其他程序共享的位元組數量。該計數器的值較大時,有可能是記憶體洩露的訊號

檢查過於頻繁的頁交換

由於過多的頁交換要使用大量的硬碟空間,因此有可能將導致將頁交換記憶體不足,這容易與導致頁交換的磁碟瓶頸混淆。因此,在研究記憶體不足不太明顯的頁交換的原因時,您必須跟蹤如下的磁碟使用情況計數器和記憶體計數器:

· Physical Disk\ % Disk Time

· Physical Disk\ Avg.Disk Queue Length

例如,包括 Page Reads/sec 和 % Disk Time 及 Avg.Disk Queue Length。如果頁面讀取操作速率很低,同時 % Disk Time 和 Avg.Disk Queue Length的值很高,則可能有磁碟瓶徑。但是,如果佇列長度增加的同時頁面讀取速率並未降低,則記憶體不足。

要確定過多的頁交換對磁碟活動的影響,請將 Physical Disk\ Avg.Disk sec/Transfer 和 Memory\ Pages/sec 計數器的值增大數倍。如果這些計數器的計數結果超過了 0.1,那麼頁交換將花費百分之十以上的磁碟訪問時間。如果長時間發生這種情況,那麼您可能需要更多的記憶體。

研究程式的活動

接下來,檢查正在執行的程式導致的過多的頁交換。如果可能,請停止具有最高工作集值的程式,然後檢視頁交換速率是否有顯著變化。如果您懷疑存在過多的頁交換,請檢查 Memory\ Pages/sec 計數器。該計數器顯示由於頁面不在實體記憶體中而需要從磁碟讀取的頁面數。(注意該計數器與 Page Faults/sec 的區別,後者只表明資料不能在記憶體的指定工作集中立即使用。)

效能測試之處理器篇(windows)

監視“處理器”和“系統”物件計數器可以提供關於處理器使用的有價值的資訊,幫助您決定是否存在瓶頸。需要包含下列內容:

  • Processor\ % Total Processor Time 獲得處理器整體使用情況。

該計數值用於體現伺服器整體的處理器利用率,對多處理器的系統而言,該計數值體現的是所有CPU的平均利用率。如果該值的數值持續超過90%,則說明整個系統面臨著處理器方面的瓶頸,需要通過增加處理器來提高效能。

要注意的是,由於作業系統本身的特性,在某些多CPU系統中,該資料本身並不大,但此時CPU之間的負載狀況極不均衡,此時也應該視作系統產生了處理器方面的瓶頸。

  • 監視 Processor\ % Processor Time、Processor\ % User Time 和 % Privileged Time 以獲得詳細資訊。

Processor\ % User Time是指系統的非核心操作消耗的CPU時間,如果該值較大,可以考慮是否通過優化演算法等方法降低這個值。如果該伺服器是資料庫伺服器,Processor\ % User Time大的原因很可能是資料庫的排序或是函式操作消耗了過多的CPU時間,此時可以考慮對資料庫系統進行優化。

  • System\ Processor Queue Length 用於瓶頸檢測。
%Total Processor Time
系統中所有處理器都處於繁忙狀態的時間百分比,對於多處理器系統來說,該值可以反映所有處理器的平均繁忙狀態,該值為100%,如果有一半的處理器為繁忙狀態,該值為50%

File Data Operations/sec
計算機對檔案系統進行讀取和寫入操作的頻率,但是不包括檔案控制操作

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

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

%Priviliaged Time
CPU在特權模式下處理執行緒所花的時間百分比。一般的系統服務,進城管理,記憶體管理等一些由作業系統自行啟動的程序屬於這類

%User Time
與%Privileged Time計數器正好相反,指的是在使用者狀態模式下(即非特權模式)的操作所花的時間百分比。如果該值較大,可以考慮是否通過演算法優化等方法降低這個值。如果該伺服器是資料庫伺服器,導致此值較大的原因很可能是資料庫的排序或是函式操作消耗了過多的CPU時間,此時可以考慮對資料庫系統進行優化。

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

觀察處理器使用情況的值

要測量處理器的活動,請檢視 Processor\ % Processor Time 計數器。該計數器顯示處理器忙於執行非空閒執行緒所耗時間的百分比。

檢查處理器使用時,請考慮計算機的角色和所完成[url=]工作[/url]的型別。根據計算機進行的工作,較高的處理器值意味著系統正有效地處理較重的工作負載或正在努力維持。例如,如果正在監視使用者的計算機,並且該計算機用於計算,計算程式可能容易使用 100% 的處理器時間。即使這會造成該計算機中[url=]其他[/url]應用程式的效能受到影響,但可以通過改變負載來解決。

另一方面,在處理許多客戶請求的伺服器計算機中,100% 左右的值表示這些過程在佇列中,正在等待處理器時間,並且造成瓶頸。如此持續高層次的處理器使用對伺服器而言是無法接受的。

考察處理器瓶頸

程序的執行緒所需要的處理器週期超出可用週期時,處理器瓶頸將逐步顯示出來。可以建立較長的處理器佇列,並且系統響應會受到影響。處理器瓶頸兩種常見的原因是 CPU 限制程式和產生過多中斷的驅動程式或子系統元件。

要決定是否由於對處理器時間的要求較高而存在處理器瓶頸,請檢視 System\ Processor Queue Length 計數器。佇列中包含兩個或更多的專案則表明存在瓶頸。如果多個程式程序競爭大多數處理器時間,安裝更快速的處理器會提高吞吐量。如果正在執行多執行緒的程序,附加處理器會有所幫助,但是請注意,附加處理器可能只有有限的益處。

此外,跟蹤計算機的伺服器工作隊列當前長度的 Server Work Queues\ Queue Length 計數器會顯示出處理器瓶頸。佇列長度持續大於 4 則表示可能出現處理器擁塞。此計數器是特定時間的值,而不是一段時間的平均值。

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

也可以對生成中斷的磁碟驅動器、網絡卡和其他裝置活動的間接指示器監視 Processor\ % Interrupt Time 時間。

注意

要檢測可能影響處理器效能的硬體問題,例如 IRQ 衝突,請觀察 System\ File Control Bytes/second 的值。

監視多處理器系統

要觀察多處理器計算機的效率,請使用下列附加計數器。

計數器

說明

Process\ % Processor Time

過程的所有執行緒在每個處理器上的處理器時間總和。

Processor(_Total)\ % Processor Time

計算機中所有處理器的處理器活動的度量。
"N[{y8_0此計數器取樣間隔期間的所有處理器平均非空閒時間的總和,並用處理器數目除以該和。51Testing軟體測試網


t#e_5I:[email protected]"a:X:Y
例如,如果所有處理器平均忙半個取樣間隔,則顯示 50%。如果半數處理器忙整個間隔,而其他的處理器空閒,則也顯示 50%。

Thread\ % Processor Time

執行緒的處理器時間數


效能測試之磁碟篇(windows)

監測物件:PhysicalDisk
如果分析的計數器指標來自於資料庫伺服器、檔案伺服器或是流媒體伺服器,磁碟I/O對這些系統來說更容易成為瓶頸。

每磁碟的I/O數可用來與磁碟的I/O能力進行對比,如果經過計算得到的每磁碟I/O數超過了磁碟標稱的I/O能力,則說明確實存在磁碟的效能瓶頸。

下表給出了每磁碟I/O的計算公式:

RAID型別

計算方法

RAID0

(Reads+Writes)/Number of Disks

RAID1

(Reads+2*Writes)/2

RAID5

[Reads+(4*Writes)]/Number of Disks

RAID10

[Reads+(2*Writes)]/Number of Disks


%Disk Time
表示磁碟驅動器為讀取或寫入請求提供服務所用的時間百分比,如果只有%Disk Time比較大,硬碟有可能是瓶頸

Average Disk Queue Length
表示磁碟讀取和寫入請求提供服務所用的時間百分比,可以通過增加磁碟構造磁碟陣列來提高效能(<=磁碟數的2倍)

Average Disk Read Queue Length
表示磁碟讀取請求的平均數

Average Disk write Queue Length
表示磁碟寫入請求的平均數

Average Disk sec/Read
磁碟中讀取資料的平均時間,單位是s

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

Average Disk sec/Transfer
磁碟中寫入資料的平均時間,單位是s

計數器反映磁碟完成請求所用的時間。較高的值表明磁碟控制器由於失敗而不斷重試該磁碟。這些故障會增加平均磁碟傳送時間。一般來說,定義該值小於15ms最為優異,介於15-30ms之間為良好,30-60ms之間為可以接受,超過60ms則需要考慮更換硬碟或硬碟的RAID方式了

 

Average Disk Bytes/Transfer

值大於 20 KB 表示該磁碟驅動器通常執行良好;如果應用程式正在訪問磁碟,則會產生較低的值。例如,隨機訪問磁碟的應用程式會增加平均 Disk sec/Transfer 時間,因為隨機傳送需要增加搜尋時間。

 

 

http://www.cnblogs.com/zengkefu/p/5634299.html

Disk Bytes/sec :目前IDE/ATA能達到133MB/s,SATA II可達到200MB/s的介面資料傳輸率,SATA III可達到600MB/s的介面資料傳輸率,SAS達到300~600MB/s的介面資料傳輸率,SSD固態硬碟達到400~600MB/s的介面資料傳輸率

SATA3.0
介面型別:SATA3.0
介面速率:6Gb/秒

外部傳輸速率600MB/s
內部傳輸速率125MB/s

SATA2.0
介面型別:SATA2.0
介面速率:3Gb/秒

外部傳輸速率200MB/s
內部傳輸速率80MB/s

傳輸速率和介面速率不能混為一談!!!
http://detail.zol.com.cn/274/273388/param.shtml

 

 

 

 

 

效能測試之網路篇(windows)

監測物件: Network Interface
網路分析是一件[url=]技術[/url]含量很高的[url=]工作[/url],在一般的組織中都有專門的網路管理人員進行網路分析,對測試工程師來說,如果懷疑網路是系統的瓶頸,可以要求網路仍有來寫真進行網路方面的檢測。

Network Interface\Bytes Total/sec為傳送和接收位元組的速率(包括幀字元在內)。可以通過該計數器的值判斷網路連線速度是否是瓶頸,具體操作方法是用該計數器的值與目前的網路頻寬進行比較。

 

Byte Total/sec
表示網路中接受和傳送位元組的速度,可以用該計數器來判斷網路是否存在瓶頸(參考值:該計數器和網路頻寬相除,<50%)


效能測試之程序篇(windows)

檢視程序的%Processor Time值

每個程序的%Processor Time反映程序所消耗的處理器時間。用不同程序所消耗的處理器時間進行對比,可以很容易的看出具體是哪個程序在[url=]效能測試[/url]過程中消耗了最多的處理器時間,從而可以據此針對應用進行優化。

檢視每個程序產生的頁面失效

可以用每個程序產生的頁面失效(通過Process\Page Failures/sec計數器獲得)和系統的頁面失效(可通過Memory\Page Failures/sec計數器獲得)的比值,來判斷哪個程序產生了最多的失效頁面,這個程序要麼是需要大量記憶體的程序,要麼是非常活躍的程序,可以對其進行中的分析。

瞭解程序的Process\Private Bytes

Process\Private Bytes是指程序所分配的無法與其他程序共享的當前位元組數量。該計數器主要用拉判斷程序在效能測試過程中有無記憶體洩漏。

例如:對於一個IIS之上的web應用,我們可以重點監控inetinfo程序的Private Bytes,如果在效能測試過程中,該程序的Private Bytes計數器值不斷增加,或是效能測試停止後一段時間,該程序的Private Bytes仍然持續在高水平,則說明應用存在記憶體洩漏。

(備註:程序分析方法用到的計數器主要有:Process\%Processor Time、Page Failures/sec、Page Failures/sec、Private Bytes)


相關連結:
① 記憶體對映檔案機制
記憶體對映檔案是利用虛擬記憶體把檔案對映到程序的地址空間中去,在此之後程序操作檔案,就像操作程序空間裡的地址一樣了,省去了讀和寫I/O的時間。

比如使用memcpy等記憶體操作的函式。這種方法能夠很好的應用在需要頻繁處理一個檔案或者是一個大檔案的場合,這種方式處理IO效率比普通IO效率要高。

利用記憶體對映檔案您可以認為作業系統已經為您把檔案全部裝入了記憶體,然後您只要移動檔案指標進行讀寫即可了。這樣您甚至不需要呼叫那些分配、釋放記憶體塊和檔案輸入/輸出的API函式,另外您可以把這用作不同的程序之間共享資料的一種辦法。運用記憶體對映檔案實際上沒有涉及實際的檔案操作,它更象為每個程序保留一個看得見的記憶體空間。至於把記憶體對映檔案當成程序間共享資料的辦法來用,則要加倍小心,因為您不得不處理資料的同步問題,否則您的應用程式也許很可能得到過時或錯誤的資料甚至崩潰。

記憶體對映檔案本身還是有一些侷限性的,譬如一旦您生成了一個記憶體對映檔案,那麼您在那個會話期間是不能夠改變它的大小的。所以記憶體對映檔案對於只讀檔案和不會影響其大小的檔案操作是非常有用的。當然這並不意味著對於會引起改變其大小的檔案操作就一定不能用記憶體影射檔案的方法,您可以事先估計操作後的檔案的可能大小,然後生成這麼大小一塊的記憶體對映檔案,然後檔案的長度就可以增長到這麼一個大小。我們的解釋夠多的了,接下來我們就看看實現的細節:

  • 呼叫CreateFile開啟您想要對映的檔案。
  • 呼叫CreateFileMapping,其中要求傳入先前CreateFile返回的控制代碼,該函式生成一個建立在CreateFile函式建立的檔案物件基礎上的記憶體對映物件。
  • 呼叫MapViewOfFile函式對映整個檔案的一個區域或者整個檔案到記憶體。該函式返回指向對映到記憶體的第一個位元組的指標。
  • 用該指標來讀寫檔案。
  • 呼叫UnmapViewOfFile來解除檔案對映。
  • 呼叫CloseHandle來關閉記憶體對映檔案。注意必須傳入記憶體對映檔案的控制代碼。
  • 呼叫CloseHandle來關閉檔案。注意必須傳入由CreateFile建立的檔案的控制代碼。
 
http://blog.163.com/jack_test/blog/static/166620663201061594032332/
監測物件
System
計數器
  • %Total Processor Time
    • 系統中所有處理器都處於繁忙狀態的時間百分比,對於多處理器系統來說,該值可以反映所有處理器的平均繁忙狀態,該值為100%,如果有一半的處理器為繁忙狀態,該值為50%
  • File Data Operations/sec
    • 計算機對檔案系統進行讀取和寫入操作的頻率,但是不包括檔案控制操作
  • Process Queue Length
    • 執行緒在等待分配CPU資源所排佇列的長度,此長度不包括正在佔有CPU資源的執行緒。如果該佇列的長度大於處理器個數+1,就表示處理器有可能處於阻塞狀態(參考值:<=處理器個數+1)

監測物件
Processor
計數器
  • %Processor Time
    • CPU利用率,該計數器最為常用,可以檢視處理器是否處於飽和狀態,如果該值持續超過 95%,就表示當前系統的瓶頸為CPU,可以考慮增加一個處理器或更換一個性能更好的處理器。(參考值:<80%)
  • %Priviliaged Time
    • CPU在特權模式下處理執行緒所花的時間百分比。一般的系統服務,進城管理,記憶體管理等一些由作業系統自行啟動的程序屬於這類
  • %User Time
    • 與%Privileged Time計數器正好相反,指的是在使用者狀態模式下(即非特權模式)的操作所花的時間百分比。
  • %DPC Time
    • 處理器在網路處理上消耗的時間,該值越低越好。