浅谈软件性能测试中关键指标的监控与分析(转)
淺談軟件性能測(cè)試中關(guān)鍵指標(biāo)的監(jiān)控與分析
一、軟件性能測(cè)試需要監(jiān)控哪些關(guān)鍵指標(biāo)?
軟件性能測(cè)試的目的主要有以下三點(diǎn):
?? 評(píng)價(jià)系統(tǒng)當(dāng)前性能,判斷系統(tǒng)是否滿足預(yù)期的性能需求。
?? 尋找軟件系統(tǒng)可能存在的性能問題,定位性能瓶頸并解決問題。
?? 判定軟件系統(tǒng)的性能表現(xiàn),預(yù)見系統(tǒng)負(fù)載壓力承受力,在應(yīng)用部署之前,評(píng)估系統(tǒng)性能。
而對(duì)于用戶來說,則最關(guān)注的是當(dāng)前系統(tǒng):
?? 是否滿足上線性能要求?
?? 系統(tǒng)極限承載如何?
?? 系統(tǒng)穩(wěn)定性如何?
? ? ? ?因此,針對(duì)以上性能測(cè)試的目的以及用戶的關(guān)注點(diǎn),要達(dá)到以上目的并回答用戶的關(guān)注點(diǎn),就必須首先執(zhí)行性能測(cè)試并明確需要收集、監(jiān)控哪些關(guān)鍵指標(biāo),通常情況下,性能測(cè)試監(jiān)控指標(biāo)主要分為:資源指標(biāo)和系統(tǒng)指標(biāo),如下圖所示,資源指標(biāo)與硬件資源消耗直接相關(guān),而系統(tǒng)指標(biāo)則與用戶場(chǎng)景及需求直接相關(guān)。
?
性能測(cè)試監(jiān)控關(guān)鍵指標(biāo)說明:
???資源指標(biāo)
CPU使用率:指用戶進(jìn)程與系統(tǒng)進(jìn)程消耗的CPU時(shí)間百分比,長(zhǎng)時(shí)間情況下,一般可接受上限不超過85%。
內(nèi)存利用率:內(nèi)存利用率=(1-空閑內(nèi)存/總內(nèi)存大小)*100%,一般至少有10%可用內(nèi)存,內(nèi)存使用率可接受上限為85%。
磁盤I/O:?磁盤主要用于存取數(shù)據(jù),因此當(dāng)說到IO操作的時(shí)候,就會(huì)存在兩種相對(duì)應(yīng)的操作,存數(shù)據(jù)的時(shí)候?qū)?yīng)的是寫IO操作,取數(shù)據(jù)的時(shí)候?qū)?yīng)的是是讀IO操作,一般使用% Disk Time(磁盤用于讀寫操作所占用的時(shí)間百分比)度量磁盤讀寫性能。
網(wǎng)絡(luò)帶寬:一般使用計(jì)數(shù)器Bytes Total/sec來度量,Bytes Total/sec表示為發(fā)送和接收字節(jié)的速率,包括幀字符在內(nèi)。判斷網(wǎng)絡(luò)連接速度是否是瓶頸,可以用該計(jì)數(shù)器的值和目前網(wǎng)絡(luò)的帶寬比較。
???系統(tǒng)指標(biāo):
并發(fā)用戶數(shù):某一物理時(shí)刻同時(shí)向系統(tǒng)提交請(qǐng)求的用戶數(shù)。
在線用戶數(shù):某段時(shí)間內(nèi)訪問系統(tǒng)的用戶數(shù),這些用戶并不一定同時(shí)向系統(tǒng)提交請(qǐng)求。
平均響應(yīng)時(shí)間:系統(tǒng)處理事務(wù)的響應(yīng)時(shí)間的平均值。事務(wù)的響應(yīng)時(shí)間是從客戶端提交訪問請(qǐng)求到客戶端接收到服務(wù)器響應(yīng)所消耗的時(shí)間。對(duì)于系統(tǒng)快速響應(yīng)類頁(yè)面,一般響應(yīng)時(shí)間為3秒左右。
事務(wù)成功率:性能測(cè)試中,定義事務(wù)用于度量一個(gè)或者多個(gè)業(yè)務(wù)流程的性能指標(biāo),如用戶登錄、保存訂單、提交訂單操作均可定義為事務(wù),如下圖所示:
?
單位時(shí)間內(nèi)系統(tǒng)可以成功完成多少個(gè)定義的事務(wù),在一定程度上反應(yīng)了系統(tǒng)的處理能力,一般以事務(wù)成功率來度量,計(jì)算公式如下所示:
?
超時(shí)錯(cuò)誤率:主要指事務(wù)由于超時(shí)或系統(tǒng)內(nèi)部其它錯(cuò)誤導(dǎo)致失敗占總事務(wù)的比率。
二、如何監(jiān)控關(guān)鍵指標(biāo)?
???資源指標(biāo)監(jiān)控
主要針對(duì)各服務(wù)器系統(tǒng)平臺(tái)(Windows、Linux、Unix等)資源使用進(jìn)行監(jiān)控。
可以使用系統(tǒng)自帶的性能監(jiān)控工具或者第三方工具進(jìn)行監(jiān)控,如Windows系統(tǒng)自帶的“系統(tǒng)性能監(jiān)視器”,如下圖所示:
?
Linux系統(tǒng)下,free、vmstat、sar、iostat等命令監(jiān)控內(nèi)存、CPU、磁盤IO等的使用情況,如下圖所示:
?
第三方監(jiān)控工具,如spotlight,spotlight是quest公司開發(fā)的一款可以針對(duì)多種系統(tǒng)平臺(tái)及數(shù)據(jù)庫(kù)進(jìn)行監(jiān)控的可視化工具,如下圖所示:
?
Nmon是IBM提供的監(jiān)控AIX和Linux系統(tǒng)資源的免費(fèi)工具,可以對(duì)收集的資源信息通過Excel進(jìn)行統(tǒng)計(jì)分析形成直觀的統(tǒng)計(jì)圖,如下圖所示:
?
???系統(tǒng)指標(biāo)監(jiān)控
系統(tǒng)指標(biāo)監(jiān)控一般通過性能測(cè)試工具(如LoadRunner、Jmeter等)以圖形化方式監(jiān)控,如下圖所示,并發(fā)用戶數(shù)與平均響應(yīng)時(shí)間關(guān)系圖。
?
三、如何分析監(jiān)控的關(guān)鍵指標(biāo)?
通過第二部分監(jiān)控收集到性能度量關(guān)鍵指標(biāo),如何進(jìn)行分析,并判斷是否存在性能瓶頸呢?以下主要從資源指標(biāo)與系統(tǒng)指標(biāo)兩方面進(jìn)行闡述。
????資源指標(biāo)分析
判斷CPU是否是瓶頸的方法:一般情況下CPU滿負(fù)荷工作,有時(shí)候并不能判定為CPU出現(xiàn)瓶頸,比如Linux總是試圖要CPU盡可能的繁忙,使得任務(wù)的吞吐量最大化,即CPU盡可能最大化使用。因此,一般判斷CPU為瓶頸,主要從兩方面:一是CPU空閑持續(xù)為0,二是運(yùn)行隊(duì)列大于CPU核數(shù)(經(jīng)驗(yàn)值3-4倍),即可判定存在瓶頸,對(duì)于CPU高消耗主要由什么引起的,可能是應(yīng)用程序不合理造成,也可能是硬件資源不足,需要具體問題具體分析,比如問題SQL語(yǔ)句引起,則需要跟蹤并優(yōu)化引起CPU使用過高的SQL語(yǔ)句。
判斷內(nèi)存是否是瓶頸的方法:一般至少有10%可用內(nèi)存,內(nèi)存使用率可接受上限為85%。當(dāng)空閑內(nèi)存變小時(shí),系統(tǒng)開始頻繁地調(diào)動(dòng)磁盤頁(yè)面文件,空閑內(nèi)存過小可能是內(nèi)存不足或內(nèi)存泄漏引起,需要根據(jù)系統(tǒng)實(shí)際情況監(jiān)控分析。
判斷磁盤I/O是否是瓶頸的方法:磁盤I/O對(duì)于數(shù)據(jù)庫(kù)服務(wù)器、文件服務(wù)器、流媒體服務(wù)器系統(tǒng)來說,更容易成為瓶頸,一般從以下幾個(gè)方面對(duì)磁盤I/O進(jìn)行分析判斷:
①??? 計(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ì)算方法如下表:
| RAID類型 | 計(jì)算方法 |
| RAID0 | (Reads+Writes)/Numbers of Disks |
| RAID1 | (Reads+2*Writes)/2 |
| RAID5 | [Reads+(4*Writes)] /Numbers of Disks |
| RAID10 | [Reads+(2*Writes)] /Numbers of Disks |
②??? 監(jiān)控磁盤讀寫,如果磁盤長(zhǎng)時(shí)間進(jìn)行大數(shù)據(jù)量讀寫操作,且cpu等待超過20%,則說明磁盤I/O存在問題,考慮提高磁盤I/O讀寫性能。
判斷網(wǎng)絡(luò)帶寬是否是瓶頸的方法:判斷網(wǎng)絡(luò)帶寬是否是系統(tǒng)運(yùn)行性能瓶頸的首要條件是網(wǎng)絡(luò)帶寬是否會(huì)影響系統(tǒng)交易執(zhí)行性能。例如:減小網(wǎng)絡(luò)帶寬,并發(fā)用戶數(shù)、響應(yīng)時(shí)間與事務(wù)通過率等性能指標(biāo)是否不能接受;或者增加網(wǎng)絡(luò)帶寬,并發(fā)用戶數(shù)、響應(yīng)時(shí)間與事務(wù)通過率等性能指標(biāo)會(huì)得到明顯提高。
在實(shí)際性能測(cè)試中,如果發(fā)現(xiàn)始終報(bào)連接超時(shí),而實(shí)際手工訪問可以正常訪問,可以通過ping應(yīng)用服務(wù)器IP或網(wǎng)關(guān)IP,如果出現(xiàn)網(wǎng)絡(luò)嚴(yán)重延遲或丟包,則說明網(wǎng)絡(luò)不穩(wěn)定,需要檢查網(wǎng)絡(luò)。
通過對(duì)資源指標(biāo)四個(gè)指標(biāo)的分析,實(shí)際上各個(gè)方面都是互相依賴的,不能孤立的單從某個(gè)方面進(jìn)行排查。當(dāng)一個(gè)方面出現(xiàn)性能問題時(shí),往往會(huì)引發(fā)其他方面的性能問題,例如,大量的磁盤讀寫勢(shì)必消耗CPU和IO資源,而內(nèi)存的不足會(huì)導(dǎo)致頻繁地進(jìn)行內(nèi)存頁(yè)寫入磁盤、磁盤寫到內(nèi)存的操作,造成磁盤IO瓶頸,同時(shí),大量的網(wǎng)絡(luò)流量也會(huì)造成CPU過載,所以,在分析性能問題時(shí),需要從各個(gè)方面進(jìn)行考慮。
???系統(tǒng)指標(biāo)分析
并發(fā)用戶數(shù):系統(tǒng)能夠支持的用戶數(shù)是系統(tǒng)容量的重要標(biāo)志,并發(fā)用戶數(shù)用于度量系統(tǒng)在高并發(fā)量訪問下,系統(tǒng)的并行處理能力,一般如果系統(tǒng)中存在死鎖、資源爭(zhēng)用,在并發(fā)訪問下,由于請(qǐng)求處于隊(duì)列等待中,系統(tǒng)響應(yīng)就會(huì)隨著時(shí)間變慢。
一般情況下,選用高吞吐量、高數(shù)據(jù)庫(kù)I/O、高商業(yè)風(fēng)險(xiǎn)的業(yè)務(wù)功能進(jìn)行并發(fā)用戶訪問測(cè)試。
判斷系統(tǒng)能夠承受的最大并發(fā)用戶數(shù),通常以滿足以下條件為準(zhǔn):
1、業(yè)務(wù)功能操作平均響應(yīng)時(shí)間在合理范圍之內(nèi)
2、事務(wù)成功率在合理范圍之內(nèi)
3、 系統(tǒng)運(yùn)行無故障(無異常宕機(jī))
4、系統(tǒng)資源指標(biāo)使用在合理范圍內(nèi)
平均響應(yīng)時(shí)間:對(duì)于客戶端用戶來說,最直觀的體驗(yàn)就是訪問該頁(yè)面快或者慢,即響應(yīng)時(shí)間的長(zhǎng)短。比如在持續(xù)并發(fā)性能測(cè)試過程中,客戶感知訪問應(yīng)用很慢,監(jiān)控到的平均響應(yīng)時(shí)間也逐漸變長(zhǎng),這時(shí)就需要先借助于監(jiān)控到的資源指標(biāo),首先排除資源方面的限制因素,再?gòu)膽?yīng)用本身進(jìn)行定位,如可以采用頁(yè)面細(xì)分工具(如httpwatch、Loadrunner Anaysis中的頁(yè)面組件細(xì)分)分析響應(yīng)比較慢的頁(yè)面。
事務(wù)成功率、超時(shí)出錯(cuò)率:事務(wù)成功率越高,則表明系統(tǒng)處理能力越大;而失敗事務(wù)主要由于系統(tǒng)響應(yīng)慢,導(dǎo)致訪問業(yè)務(wù)功能超時(shí),或者系統(tǒng)業(yè)務(wù)功能異常,不能正常訪問等,需要根據(jù)事務(wù)錯(cuò)誤提示信息,具體分析。
綜上所述,軟件性能測(cè)試是執(zhí)行、監(jiān)控—〉分析—〉調(diào)優(yōu)不斷進(jìn)行的過程,即監(jiān)控是為分析提供更多的參考數(shù)據(jù),分析是為了進(jìn)行調(diào)優(yōu),調(diào)優(yōu)是解決當(dāng)前系統(tǒng)存在的性能瓶頸,為用戶提供更好、更快的客戶體驗(yàn)。由于分析、調(diào)優(yōu)需要根據(jù)具體問題進(jìn)行具體分析,本文未做過多說明,只對(duì)通用的關(guān)鍵指標(biāo)進(jìn)行監(jiān)控分析,建議在實(shí)際工作中可從資源指標(biāo)與系統(tǒng)指標(biāo)兩個(gè)方面,層層檢測(cè)、步步排查,性能問題就無處藏身,一旦找到出現(xiàn)問題的原因,性能問題也就迎刃而解!
?
【注】文章中有部分來自網(wǎng)絡(luò)或其它書籍中的資料進(jìn)行了綜合整理。
轉(zhuǎn)載于:https://www.cnblogs.com/wangcp-2014/p/4932671.html
與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的浅谈软件性能测试中关键指标的监控与分析(转)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大道至简第五章阅读笔记
- 下一篇: 水印控件