您好,登錄后才能下訂單哦!
軟件測試: 瓶頸分析方法
1 、內(nèi)存分析法
內(nèi)存分析用于判斷系統(tǒng)有無內(nèi)存瓶頸,是否需要通過增加內(nèi)存等手段提高系統(tǒng)性能表現(xiàn)。
內(nèi)存分析需要使用的計(jì)數(shù)器:Memory 類別和 Physical Disk 類別的計(jì)數(shù)器。內(nèi)存分析的主要方法和步驟:
(1 )首先查看 Memory\Available Mbytes 指標(biāo)
如果該指標(biāo)的數(shù)據(jù)比較小,系統(tǒng)可能出現(xiàn)了內(nèi)存方面的問題,需要繼續(xù)下面步驟進(jìn)一步分析。
注: 在UNIX/LINUX 中,對(duì)應(yīng)指標(biāo)是 FREE(KB)
(2 )注意 Pages/sec 、 Pages Read/sec 和 Page Faults/sec 的值
操作系統(tǒng)回利用磁盤較好的方式提高系統(tǒng)可用內(nèi)存量或者提高內(nèi)存的使用效率。這三個(gè)指標(biāo)直接反應(yīng)了操作系統(tǒng)進(jìn)行磁盤交換的頻度。
如果Pages/sec 的技術(shù)持續(xù)高于幾百,可能有內(nèi)存問題。 Pages/sec 值不一定大就表明有內(nèi)存問題,可能是運(yùn)行使用內(nèi)存映射文件的程序所致。 Page Faults/sec 說明每秒發(fā)生頁面失效次數(shù),頁面失效次數(shù)越多,說明操作系統(tǒng)向內(nèi)存讀取的次數(shù)越多。此事需要查看 Pages Read/sec 的計(jì)數(shù)值,該計(jì)數(shù)器的閥值為 5 ,如果計(jì)數(shù)值超過 5 ,則可以判斷存在內(nèi)存方面的問題。
注:在UNIX/LINUX 系統(tǒng)中,對(duì)于指標(biāo)是 (page)si 和 (page)so.
(3) 根據(jù) Physical Disk 計(jì)數(shù)器的值分析性能瓶頸
對(duì)Physical Disk 計(jì)數(shù)器的分析包括對(duì) Page Reads/sec 和 %Disk Time 及 Aerage Disk Queue Length 的分析。如果 Pages Read/sec 很低,同時(shí) %Disk Time 和 Average Disk Queue Length 的值很高,則可能有磁盤瓶頸。但是,如果隊(duì)列長度增加的同時(shí) Pages Read/sec 并未降低,則是內(nèi)存不足。
注:在 UNIX/LINUX 系統(tǒng)中,對(duì)應(yīng)的指標(biāo)是 Reads(Writes)per sec 、 Percent of time the disk is busy 和 Average number of transactions waiting for service.
2 、處理器分析法
(1 )首先看 System\%Total Processor Time 性能計(jì)數(shù)器的計(jì)數(shù)值
該計(jì)數(shù)器的值體現(xiàn)服務(wù)器整體處理器利用率,對(duì)多處理器的系統(tǒng)而言,該計(jì)數(shù)器提醒所有CPU 的平均利用率。如果該值持續(xù)超過 90 %,則說明整個(gè)系統(tǒng)面臨著處理器方面的瓶頸,需要通過增加處理器來提高性能。
注:多處理器系統(tǒng)中,該數(shù)據(jù)本身不大,但PUT 直接負(fù)載狀況極不均衡,也應(yīng)該視作系統(tǒng)產(chǎn)生處理器方面瓶頸。
(2 )其次查看每個(gè) CPU 的 Processor\%Processor Time 和 Processor\%User Time 和 Processor\%Privileged Time
Processor\%User Time 是系統(tǒng)非核心操作消耗的 CPU 時(shí)間,如果該值較大,可以考慮是否能通過友好算法等方法降低這個(gè)值。如果該服務(wù)器是數(shù)據(jù)庫服務(wù)器, Processor\%User Time 值大的原因很可能是數(shù)據(jù)庫的排序或是函數(shù)操作消耗了過多的 CPU 時(shí)間,此時(shí)可以考慮對(duì)數(shù)據(jù)庫系統(tǒng)進(jìn)行優(yōu)化。
(3 )研究系統(tǒng)處理器瓶頸
查看 System\Processor Queue Length 計(jì)數(shù)器的值,當(dāng)該計(jì)數(shù)器的值大于 CPU 數(shù)量的總數(shù)+ 1 時(shí),說明產(chǎn)生了處理器阻塞。在處理器的 %Process Time 很高時(shí),一般都隨處理器阻塞,但產(chǎn)生處理器阻塞時(shí), Processor\%Process Time 計(jì)數(shù)器的值并不一定很大,此時(shí)就必須查找處理器阻塞的原因。
%DOC Time 是另一個(gè)需要關(guān)注的內(nèi)容,該計(jì)數(shù)器越低越好。在多處理器系統(tǒng)中,如果這個(gè)值大于 50 %,并且 Processor\%Precessor Time 非常高,加入一個(gè)網(wǎng)卡可能回提高性能。
3 、磁盤 I/O 分析法
(1 )計(jì)算梅磁盤的 I/O 數(shù)
梅磁盤的I/O 數(shù)可用來與磁盤的 I/O 能力進(jìn)行對(duì)比,如果經(jīng)過計(jì)算得到的每磁盤 I/O 數(shù)超過了磁盤標(biāo)稱的 I/O 能力,則說明確實(shí)存在磁盤的性能瓶頸。
每磁盤I/O 計(jì)算方法
RAID0 計(jì)算方法:( Reads +Writes)/Number of Disks
RAID0 計(jì)算方法:( Reads +2*Writes)/2
RAID0 計(jì)算方法: [Reads +(4*Writes)]/Number of Disks
RAID0 計(jì)算方法: [Reads +(2*Writes)]/Number of Disks
(2) 與 Processor\Privileged Time 合并進(jìn)行分析
如果在Physical Disk 計(jì)數(shù)器中,只有% Disk Time 比較大,其他值都比較適中,硬盤可能會(huì)是瓶頸。若幾個(gè)值都比較大,且數(shù)值持續(xù)超過 80 %,則可能是內(nèi)存泄漏。
(3 )根據(jù) Disk sec/Transfer 進(jìn)行分析
一般來說,定義該數(shù)值小于15ms 為 Excellent ,介于 15 ~ 30ms 之間為良好, 30 ~ 60ms 之間為可以接受,超過 60ms 則需要考慮更換硬盤或是硬盤的 RAID 方式了。
4 、進(jìn)程分析法
(1 )查看進(jìn)程的% Processor Time 值
每個(gè)進(jìn)程的%Processor Time 反映進(jìn)程所消耗的處理器時(shí)間。用不同進(jìn)程所消耗的處理器時(shí)間進(jìn)行對(duì)比,可以看出具體哪個(gè)進(jìn)程在性能測試過程中消耗了最多的處理器時(shí)間,從而可以據(jù)此針對(duì)應(yīng)用進(jìn)行優(yōu)化。
(2 )查看每個(gè)進(jìn)程產(chǎn)生的頁面失效
可以用每個(gè)進(jìn)程產(chǎn)生的頁面失效(通過PRCESS\PAGE FAILURES/SEC 計(jì)數(shù)器獲得)和系統(tǒng)頁面失效 ( 可以通過 MEMORY\PAGE FAILURES/SEC 計(jì)數(shù)器獲得 ) 的比值,來判斷哪個(gè)進(jìn)程產(chǎn)生了最多的頁面失效,這個(gè)進(jìn)程要么是需要大量內(nèi)存的進(jìn)程,要么是非?;钴S的進(jìn)程,可以對(duì)其進(jìn)行重點(diǎn)分析。
(3 )了解進(jìn)程的 Process/Private Bytes
Process/Private Bytes 是指進(jìn)程所分配的無法與其他進(jìn)程共享的當(dāng)前字節(jié)數(shù)量。該計(jì)數(shù)器主要用來判斷進(jìn)程在性能測試過程中有無內(nèi)存泄漏。例如:對(duì)于一個(gè) IIS 之上的 WEB 應(yīng)用,我們可以重點(diǎn)監(jiān)控 inetinfo 進(jìn)程的 Private Bytes ,如果在性能測試過程中,該進(jìn)程的 Private Bytes 計(jì)數(shù)器值不斷增加,或是性能測試停止后一段時(shí)間,該進(jìn)程的 Private Bytes 仍然持續(xù)在高水平,則說明應(yīng)用存在內(nèi)存泄漏。
注:在UNIX/LINUX 系統(tǒng)中,對(duì)應(yīng)的指標(biāo)是 Resident Size
5 、網(wǎng)絡(luò)分析法
Network Interface\Bytes Total/sec 為發(fā)送和接收字節(jié)的速率,可以通過該計(jì)數(shù)器值來判斷網(wǎng)絡(luò)鏈接速度是否是瓶頸,具體操作方法是用該計(jì)數(shù)器的值和目前網(wǎng)絡(luò)的帶寬進(jìn)行比較。
RAID0 計(jì)算方法: [Reads +(2*Writes)]/Number of Disks
(2) 與 Processor\Privileged Time 合并進(jìn)行分析
如果在Physical Disk 計(jì)數(shù)器中,只有% Disk Time 比較大,其他值都比較適中,硬盤可能會(huì)是瓶頸。若幾個(gè)值都比較大,且數(shù)值持續(xù)超過 80 %,則可能是內(nèi)存泄漏。
(3 )根據(jù) Disk sec/Transfer 進(jìn)行分析
一般來說,定義該數(shù)值小于15ms 為 Excellent ,介于 15 ~ 30ms 之間為良好, 30 ~ 60ms 之間為可以接受,超過 60ms 則需要考慮更換硬盤或是硬盤的 RAID 方式了。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。