軟件性能測試(連載5)
- 2020 年 2 月 19 日
- 筆記
2性能監控
2.1Windows的性能監控
Windows計數器見表3-2所示。
表3-2 Windows計數器
類別 |
計數器名稱 |
描述 |
---|---|---|
System |
%Total Processor Time |
系統中所有處理器都處於繁忙狀態的時間百分比,對於多處理器系統來說,該值可以反映所有處理器的平均繁忙狀態,該值為100%,如果有一半的處理器為繁忙狀態,該值為50%。 |
Process Queue Length |
線程在等待分配CPU資源所排隊列的長度,此長度不包括正在佔有CPU資源的線程。 |
|
File Data Operations/sec |
計算機對文件系統進行讀取和寫入操作的頻率,但是不包括文件控制操作 |
|
Processor |
%Processor Time |
CPU利用率,該計數器最為常用,可以查看處理器是否處於飽和狀態,如果該值持續超過 95%,就表示當前系統的瓶頸為CPU,可以考慮增加一個處理器或更換一個性能更好的處理器。 |
%Priviliaged Time |
CPU在特權模式下處理線程所花的時間百分比。一般的系統服務,進程管理,內存管理等一些由操作系統自行啟動的進程屬於這類 |
|
%User Time |
與%Privileged Time計數器正好相反,指的是在用戶狀態模式下(即非特權模式)的操作所花的時間百分比。 |
|
%DPC Time |
處理器在網絡處理上消耗的時間,該值越低越好。 |
|
Process |
%Processor Time |
進程的所有線程在每個處理器上的處理器時間總和。 |
private Bytes |
進程無法與其他進程共享的位元組數量。該計數器的值較大時,有可能是內存泄露的信號 |
|
Work set |
最近處理線程使用的內存頁 |
|
Memory |
Available Mbytes |
剩餘的可用物理內存,單位是兆位元組 |
Pages reads/sec |
表示為了解決硬錯誤而從硬盤上讀取的頁數。 |
|
Pages writes/sec |
Page Writes/sec是指為了釋放物理內存空間而將頁寫入磁盤的次數 |
|
Pages Input/sec |
表示為了解決硬錯誤而寫入硬盤的頁數(參考值:>=Page Reads/sec) |
|
Pages Output/sec |
Pages Output/sec是指為了釋放物理內存空間而寫入磁盤的頁數如果該值遠遠大於Pages Input/sec,可能有內存泄漏 |
|
Pages/sec |
表示為了解決硬錯誤而從硬盤上讀取或寫入硬盤的頁數 |
|
Page Faults/sec |
當處理器在內存中讀取某一頁出現錯誤時,就會產生缺頁中斷,也就是 page Fault。如果這個頁位於內存的其他位置,這種錯誤稱為軟錯誤,用Transition Fault/sec 來衡量;如果這個頁位於硬盤上,必須從硬盤重新讀取,這個錯誤成為硬錯誤。硬錯誤會使系統的運行效率很快降下來。Page Faults/sec這個計數器就表示每秒鐘處理的錯誤頁數,包括硬錯誤和軟錯誤。 |
|
Cathe Bytes |
文件系統的緩存(默認為50%的可用物理內存) |
|
Network interface |
Bytes received/sec |
該數據結合Bytes total/sec參看 |
Bytes sent/sec |
該數據結合Bytes total/sec參看 |
|
Bytes total/sec |
表示網絡中接受和發送位元組的速度,可以用該計數器來判斷網絡是否存在瓶頸 |
|
Packets/sec |
根據實際數據量大小,無建議閾值,該數據結合Bytes total/sec參看 |
|
Physical disk |
Disk reads/sec |
取決於硬盤製造商的規格,檢查磁盤的指定傳送速度,以驗證此速度沒有超出規格 |
Disk writes/sec |
取決於硬盤製造商的規格,檢查磁盤的指定傳送速度,以驗證此速度沒有超出規格Disk reads/sec+ Disk writes/sec應小於磁盤設備的最大容量 |
|
%Disk Time |
表示磁盤驅動器為讀取或寫入請求提供服務所用的時間百分比。 |
|
Average Disk Queue Length |
表示磁盤讀取和寫入請求提供服務所用的時間百分比,可以通過增加磁盤構造磁盤陣列來提高性能(<=磁盤數的2倍) |
|
Average Disk Read Queue Length |
表示磁盤讀取請求的平均數 |
|
Average Disk write Queue Length |
表示磁盤寫入請求的平均數 |
|
Average Disk sec/Read |
磁盤中讀取數據的平均時間,單位是秒 |
|
Average Disk sec/Transer |
磁盤中寫入數據的平均時間,單位是秒 |
如圖3-12所示,Windows專門提供了性能計數器查看的界面。
1. CPU
•System。
Ø%Total Processor Time。
服務器整體的處理器利用率,如果持續>80%可能存在性能等問題了。
ØProcess Queue Length。
線程單元中的處理器隊列的即時長度,如果大於CPU數量+1,說明處理器處於堵塞狀態。
•Processor。
Ø%DPC Time。
處理器在網絡處理上消耗的時間,這個字越低越好。如果大於50% 並且 Processor Time很高。可能網卡性能發生了問題。
Ø%User Time。
非核心操作消耗CPU時間,如果比較大,就要考慮優化程序算法,如果是數據庫服務器考慮優化數據庫優化。
2. 內存
•Memory
ØAvailable Mbytes。
剩餘的可用物理內存。在Windows中內存可分為0內存、空閑內存、已緩存內存和忙內存。0內存是防止後面的內存看到前面的內存。已緩存內存是指先被系統核心進程註冊的內存,如果系統核心進程需要運行,它會首先使用已緩存內存。這裡的剩餘的可用物理內存是指空閑內存+已緩存內存,建議不小於總內存的10%。
Øpages/sec。
硬件頁面錯誤導致從磁盤取出的頁面數。參考值為00~20。
Øpages Read/sec。
頁的硬故障。這個值不應該超過5。
ØPage Faults。
處理器頁面錯誤計數。這個值大說明操作系統向內存讀取錯誤數據過多。
•Physical disk。
Ø%Disk Time。
所選磁盤忙於讀寫請求服務所用的時間百分比,正常值<0.5。
ØAverage Disk R/D Queue Length。
讀取(寫入)請求(隊列)的平均數,正常值<0.5。
注意。
•如果pages/sec很低並且%Disk Time &Average Disk R/D Queue Length很高說明磁盤存在問題。
•Average Disk R/D Queue Length長度增加然而pages Read/sec未降低說明內存不足。
3. 磁盤I/O
由於RAID的類型,磁盤的I/O數的計算方法如下表3-3所示。
表3-3 磁盤的I/O數的計算方法
RAID類型 |
計算方法 |
---|---|
RAID0 |
(Reads+Writes)/Number of Disks |
RAID1 |
(Reads+2×Writes)/2 |
RAID5 |
(Reads+4×Writes)/Number of Disks |
RAID10 |
(Reads+42×)/Number of Disks |
擴展閱讀:RAIDRAID(Redundant Array of Independent Disk 獨立冗餘磁盤陣列)技術是加州大學伯克利分校1987年提出,最初是為了組合小的廉價磁盤來代替大的昂貴磁盤,同時希望磁盤失效時不會使對數據的訪問受損 失而開發出一定水平的數據保護技術。RAID就是一種由多塊廉價磁盤構成的冗餘陣列,在操作系統下是作為一個獨立的大型存儲設備出現。RAID可以充分發揮出多塊硬盤的優勢,可以提升硬盤速度,增大容量,提供容錯功能夠確保數據安全性,易於管理的優點,在任何一塊硬盤出現問題的情況下都可以繼續工作,不會受到損壞硬盤的影響。 |
|
---|---|
|
|
|
|
•Physical disk。
Ø% Disk Time。
如果只有%Disk Time高,說明磁盤遇到了瓶頸;如果Physical disk中其他值都高,說明有內存泄露。
Ø% Average Disksec/Transer。
0-15ms:優秀、15-30ms:良好、30-60ms:可以接受、>60ms:考慮更換硬盤或硬盤RAID方式。
4. 進程
•Process。
Ø%ProcessorTime。
查看哪些進程佔有時間最長。
ØPageFailure/sec。
進程產生的頁故障與系統產生的相比較,以判斷該進程對系統頁故障的影響。與Memory中的Page Faults/sec 比值來判斷那個進程產生的頁面時效最多。
ØPrivate Bytes。
是指進程所分配的無法與其他進程共享的當前位元組數量。如果這個值持續增長或者性能測試終止後這個值仍舊不降,說明發生了內存泄露。
5.網絡
•Network interface。
Ø Bytestotal/sec。
該計數器和網絡帶寬相除得到的百分比,建議<50%。
•網絡其他指標請參看參考SNMP。