3.1性能分析的步驟
1.首先從響應(yīng)時(shí)間做為分析性能的起點(diǎn)。查看響應(yīng)時(shí)間以判斷是否滿足用戶對(duì)性能的期望。
2.考察系統(tǒng)的瓶頸是在網(wǎng)絡(luò)環(huán)節(jié)還是在服務(wù)器環(huán)節(jié)。
針對(duì)服務(wù)器分析主要涉及應(yīng)用程序、web服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器、操作系統(tǒng)等。
首先應(yīng)該分析業(yè)務(wù)或者用戶事務(wù)的響應(yīng)時(shí)間,根據(jù)測(cè)試結(jié)果來(lái)分析哪些業(yè)務(wù)真正變慢了,然后分析web資源的處理情況,最后對(duì)頁(yè)面組成元素的響應(yīng)時(shí)間進(jìn)行分解。
3.1.1用戶事務(wù)分析
1.查看結(jié)果綜述圖:查看事務(wù)的平均響應(yīng)時(shí)間,以及事務(wù)的通過(guò)率
2.查看事務(wù)綜述圖和事務(wù)平均響應(yīng)時(shí)間分析圖:查看事務(wù)通過(guò)和失敗的數(shù)值,來(lái)判斷是程序算法出現(xiàn)問(wèn)題還是服務(wù)器存在內(nèi)存泄漏現(xiàn)象。
3.每秒通過(guò)事務(wù)數(shù)分析圖:可確定系統(tǒng)在任何給定時(shí)刻的實(shí)際事務(wù)負(fù)載。當(dāng)發(fā)現(xiàn)每秒通過(guò)的事務(wù)數(shù)減少時(shí),就需要更加深入的分析,配合服務(wù)器監(jiān)控?cái)?shù)據(jù)一起分析。
4.事務(wù)性能摘要圖:重點(diǎn)關(guān)注事務(wù)的平均和最大執(zhí)行時(shí)間,如果其范圍不在用戶可以接受的時(shí)間范圍內(nèi),需要進(jìn)行原因分析。
5.事務(wù)響應(yīng)時(shí)間與負(fù)載分析圖:正在運(yùn)行的虛擬用戶和平均事務(wù)響應(yīng)時(shí)間圖的組合,通過(guò)它可以看出在任一時(shí)間點(diǎn)事務(wù)響應(yīng)時(shí)間與用戶數(shù)目的關(guān)系,從而掌握系統(tǒng)在用戶并發(fā)方面的性能數(shù)據(jù),為擴(kuò)展應(yīng)用系統(tǒng)提供參考,對(duì)分析具有漸變負(fù)載的測(cè)試場(chǎng)景比較有用。
6.事務(wù)響應(yīng)時(shí)間分布情況分布圖:預(yù)先定義相關(guān)事務(wù)可以接受的最小和最大事務(wù)響應(yīng)時(shí)間,則可以使用此圖確定服務(wù)器性能是否在可以接受的范圍內(nèi)。
3.1.2web資源分析
1.點(diǎn)擊率圖:每秒點(diǎn)擊次數(shù),即點(diǎn)擊率圖顯示在場(chǎng)景運(yùn)行過(guò)程中虛擬用戶每秒向web服務(wù)器提交的HTTP請(qǐng)求數(shù),可依據(jù)點(diǎn)擊次數(shù)來(lái)評(píng)估虛擬用戶產(chǎn)生的負(fù)載量,還可將其與”平均事務(wù)響應(yīng)時(shí)間”圖進(jìn)行比較,以查看點(diǎn)擊次數(shù)對(duì)事務(wù)性能產(chǎn)生的影響。
系統(tǒng)點(diǎn)擊率下降通常表明服務(wù)器的響應(yīng)速度在變慢。
2.吞吐率圖:顯示場(chǎng)景運(yùn)行過(guò)程中服務(wù)器每秒的吞吐量。度量單位是字節(jié),表示虛擬用戶在任何給定的某一秒上從服務(wù)器獲得的數(shù)據(jù)量。
點(diǎn)擊率:每秒服務(wù)器處理的HTTP申請(qǐng)數(shù)
吞吐率:客戶端每秒從服務(wù)器獲得的總數(shù)據(jù)量。
每秒HTTP響應(yīng)數(shù)圖還能返回其他各類(lèi)狀態(tài)碼信息,通過(guò)分析狀態(tài)碼,可以判斷服務(wù)器在壓力下的運(yùn)行情況。
常見(jiàn)的http狀態(tài)代碼:從200-505均有其含義。如202:已經(jīng)接受請(qǐng)求,但處理尚未完成。
3.每秒連接數(shù)圖:顯示在運(yùn)行過(guò)程中每秒新建立的TCP/IP連接數(shù)。新連接數(shù)應(yīng)該是每秒點(diǎn)擊次數(shù)的一小部分,理想情況下,很多的HTTP請(qǐng)求都應(yīng)該使用同一連接,而不是每個(gè)請(qǐng)求都新打開(kāi)一個(gè)連接。
3.1.3網(wǎng)頁(yè)元素細(xì)分
通過(guò)它可深入地分析網(wǎng)站上那些下載很慢的圖像或中斷的鏈接等有問(wèn)題的元素。
頁(yè)面分解總圖:可顯示某一具體事務(wù)在測(cè)試過(guò)程的響應(yīng)情況,進(jìn)而分析相關(guān)的事務(wù)運(yùn)行是否正常。
1.下載時(shí)間細(xì)分:查看靜態(tài)gif圖片和動(dòng)態(tài)的jsp代碼。
2.組件細(xì)分(隨時(shí)間變化):可以選擇不同的元素查看測(cè)試過(guò)程中其下載時(shí)間的變化曲線。適用于需要在客戶端下載控制較多的頁(yè)面,通過(guò)分析控件的響應(yīng)時(shí)間,很容易就能發(fā)現(xiàn)哪些控件不穩(wěn)定或者比較耗時(shí)。
3.下載時(shí)間細(xì)分(隨時(shí)間變化):查看jsp頁(yè)面主要時(shí)間花在如receive,firstbuffer,connection等。
下載時(shí)間細(xì)分:宏觀,整個(gè)測(cè)試過(guò)程頁(yè)面元素響應(yīng)時(shí)間的統(tǒng)計(jì)分析結(jié)果
下載時(shí)間細(xì)分(隨時(shí)間變化):微觀,顯示場(chǎng)景運(yùn)行過(guò)程中每一秒內(nèi)頁(yè)面元素響應(yīng)時(shí)間的統(tǒng)計(jì)結(jié)果。
4.第一次緩沖時(shí)間細(xì)分(隨時(shí)間變化):可查看頁(yè)面運(yùn)行時(shí)間主要花在服務(wù)器還是網(wǎng)絡(luò)傳輸上。
服務(wù)器分析通常從web服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器入手。
服務(wù)器分析的第一步,分析測(cè)試工具對(duì)web服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器相關(guān)計(jì)數(shù)器的監(jiān)控結(jié)果,然后確定在壓力下是web服務(wù)較慢還是數(shù)據(jù)處理較慢。
Web服務(wù)較慢:查看web服務(wù)器的各種參數(shù)配置,如最大連接數(shù)、最大內(nèi)存等是否設(shè)置的合理。查看內(nèi)存、CPU、硬盤(pán)
數(shù)據(jù)處理較慢:一般是數(shù)據(jù)庫(kù)配置發(fā)生問(wèn)題,或是硬件資源配置太低。如oracle,要查看內(nèi)存配置、運(yùn)行模式等信息。
4.1數(shù)據(jù)庫(kù)調(diào)優(yōu)策略
1.修改sql語(yǔ)句中影響速度的寫(xiě)法
2.增加或者修改索引
針對(duì)表間的連接創(chuàng)建索引
針對(duì)查找建立索引
使用索引時(shí),遵守以下原則可達(dá)到更好的效果
第一:一般建立在多個(gè)字段上的一個(gè)組合索引優(yōu)于針對(duì)單個(gè)字段建立的多個(gè)索引,根據(jù)值匹配條件創(chuàng)建的索引也需要遵循同樣的原則:
第二:創(chuàng)建組合索引時(shí),精確匹配的字段放在非精確匹配字段前面,取值范圍大的字段放在取值范圍小的字段前面,可以提高查詢速度,如身份證字段應(yīng)該放在性別字段前面。
第三:索引并不是越多越好,當(dāng)數(shù)據(jù)庫(kù)記錄較多時(shí),意味著數(shù)據(jù)庫(kù)要付出的開(kāi)銷(xiāo)將會(huì)很大,從而降低數(shù)據(jù)庫(kù)其他方面的性能。
3.調(diào)整相應(yīng)數(shù)據(jù)庫(kù)的系統(tǒng)參數(shù)(系統(tǒng)投產(chǎn)生的調(diào)優(yōu),通常由廠商的配合完成)
一般檢查項(xiàng)為:復(fù)雜語(yǔ)句支持,大對(duì)象功能支持,并發(fā)查詢性能,吞吐量,數(shù)據(jù)遷移(導(dǎo)出備份)。
4.2weblogic/oracle相關(guān)分析
主要監(jiān)控:%processor, Avalable Mbytes(空閑內(nèi)存),JVM內(nèi)存,connection Delay Time(數(shù)據(jù)庫(kù)連接池建立數(shù)據(jù)庫(kù)連接的時(shí)間)
Oracle運(yùn)行平臺(tái)AIX監(jiān)控(unix),cpu的使用率(cpuutilization),disk traltic(磁盤(pán)負(fù)載),page-in,page-outrate的使用情況。
以及oracle本身相關(guān)報(bào)告:相看緩沖區(qū)調(diào)整緩存,應(yīng)用程序的i/o操作。
4.3性能測(cè)試用例設(shè)計(jì)要基于用戶語(yǔ)言
即滿足用戶要求又相對(duì)全面的性能測(cè)試用例,設(shè)計(jì)時(shí)要基于“用戶語(yǔ)言”,易于用戶理解的、大綱形式的測(cè)試用例,這樣涉及的技術(shù)語(yǔ)言不多,用戶很容易看懂。這樣使得用戶在現(xiàn)場(chǎng)測(cè)試階段能夠提出很多改進(jìn)建議,并同意對(duì)用例進(jìn)行調(diào)整(刪減近一半的用例),可以為后期執(zhí)行測(cè)試節(jié)約成本。
性能測(cè)試實(shí)施的特點(diǎn)之一就是不會(huì)嚴(yán)格按照測(cè)試用例來(lái)執(zhí)行,通常是在項(xiàng)目中對(duì)用戶進(jìn)行一定的調(diào)整,然后再去執(zhí)行,對(duì)于測(cè)試用例進(jìn)行調(diào)整,刪除、修改、增加,這是很正常的,基本成本來(lái)進(jìn)行設(shè)計(jì)和執(zhí)行。