性能測(cè)試數(shù)據(jù)分析經(jīng)驗(yàn)_第1頁(yè)
性能測(cè)試數(shù)據(jù)分析經(jīng)驗(yàn)_第2頁(yè)
性能測(cè)試數(shù)據(jù)分析經(jīng)驗(yàn)_第3頁(yè)
性能測(cè)試數(shù)據(jù)分析經(jīng)驗(yàn)_第4頁(yè)
性能測(cè)試數(shù)據(jù)分析經(jīng)驗(yàn)_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、性能測(cè)試數(shù)據(jù)分析經(jīng)驗(yàn)我以為福建移動(dòng)BOSS系統(tǒng)做的一個(gè)小規(guī)模的性能測(cè)試為例,談?wù)勎以跀?shù)據(jù)分析中的一些經(jīng)驗(yàn)。測(cè)試用例,模式如下圖。 一臺(tái)Linux模擬Browser(簡(jiǎn)稱(chēng)browser)向主機(jī)SUN發(fā) HTTP請(qǐng)求,SUN上啟動(dòng)Apache Web Server將請(qǐng)求交給FCGI程序。FCGI程序作為T(mén)E節(jié)點(diǎn)CC1(簡(jiǎn)稱(chēng)fcgi)的客戶進(jìn)程發(fā)起TE事務(wù),經(jīng)GT1名字服務(wù)向CC2 (簡(jiǎn)稱(chēng)svr_cc)發(fā)送一個(gè)分支,CC2 上服務(wù)嵌套經(jīng)GT1名字服務(wù)向ACCTFZ(在HP上,簡(jiǎn)稱(chēng)svr_ac)發(fā)送一個(gè)分支。測(cè)試3種壓力情況,即10browser/10fcgi/5svr_cc服務(wù)進(jìn)程/2sv

2、r_ac服務(wù)進(jìn)程,20browser/20fcgi /10svr_cc服務(wù)進(jìn)程/2svr_ac服務(wù)進(jìn)程,30browser/20fcgi/10svr_cc服務(wù)進(jìn)程/2svr_ac服務(wù)進(jìn)程。一記錄數(shù)據(jù)。各個(gè)部分的應(yīng)用程序在程序中關(guān)鍵地方記錄時(shí)間,精確到微秒(毫秒也可以),并按一定格式寫(xiě)入日志文件。這樣可以并計(jì)算相同應(yīng)用相臨時(shí)間點(diǎn)之間的平均時(shí)間差(編程序分析日志文件或用excel導(dǎo)入)。有了時(shí)間差,才能分析出整個(gè)系統(tǒng)性能的瓶頸(處理慢的環(huán)節(jié))。下面給出一個(gè)fcgi進(jìn)程(也是TE客戶端進(jìn)程)的日志文件片段。19:21:32.628.512 begin_tpbegin19:21:32.628.833

3、end_tpbegin19:21:32.628.944 begin_tpsetbranch19:21:32.629.053 end_tpsetbranch19:21:32.629.487 begin_tpcall19:21:37.102.996 end_tpcall19:21:37.103.806 begin_tpcommit19:21:37.432.253 end_tpcommit19:21:40.405.345 begin_tpbegin19:21:40.405.532 end_tpbegin19:21:40.405.639 begin_tpsetbranch19:21:40.405.74

4、2 end_tpsetbranch19:21:40.406.175 begin_tpcall19:21:46.732.888 end_tpcall19:21:46.733.650 begin_tpcommit19:21:46.832.538 end_tpcommit第一個(gè)字段是時(shí)間點(diǎn)時(shí)間,第二個(gè)字段是該時(shí)間點(diǎn)描述串,兩個(gè)字段用空格間隔。從這個(gè)文件可以看出,fcgi進(jìn)程是循環(huán)處理業(yè)務(wù)的。 begin_tpbegin處開(kāi)始一筆業(yè)務(wù),begin_tpcall和end_tpcall之間是TE_tpcall()發(fā)起請(qǐng)求到收到應(yīng)答的時(shí)間,begin_tpbegin和end_tpbegin之間是TE_tpc

5、ommit()發(fā)起提交到收到提交應(yīng)答的時(shí)間。而end_tpcommit到 begin_tpcall是fcgi進(jìn)程從一筆業(yè)務(wù)結(jié)束到開(kāi)始下一筆業(yè)務(wù)的時(shí)間,在這里也就是fcgi進(jìn)程從Web Server獲取HTTP請(qǐng)求的時(shí)間。從這種格式的原始數(shù)據(jù)文件可以編程序計(jì)算出相臨時(shí)間點(diǎn)之間的時(shí)間差,并可以計(jì)算出所有交易的平均時(shí)間差。也可以用excel打開(kāi)這種格式的原始數(shù)據(jù)文件,按空格分隔各列,讀入excel后就可以使用excel提供的函數(shù)(入SEC()函數(shù)從hh:mm:ss時(shí)間格式換算成秒)和公式計(jì)算時(shí)間差和平均值,以及產(chǎn)生圖表等等。事實(shí)證明excel的功能是十分強(qiáng)大和方便的。二誤差的判斷和排除。根據(jù)原始數(shù)據(jù)

6、統(tǒng)計(jì)出的3種壓力情況下fcgi各點(diǎn)時(shí)間如下。                  10_10_5_2(ms)         20_20_10_2(ms)         30_20_10_2(ms)TPC(筆/秒)                   2.16967        

7、; 2.28571         2.21911fcgi         receive from fcgi         343         931         1676tpcall         4096         7614         8067tpc

8、ommit         176         204         205total_fcgi         4615         8749         9731比較10_10_5_2和20_20_10_2,由于20_20_10_2在SUN主機(jī)上啟動(dòng)fcgi進(jìn)程和svr_cc服務(wù)進(jìn)程數(shù)都比 10_10_5_2多,SUN上的壓力也較大,因此r

9、eceive from fcgi的時(shí)間也較大是合理的。比較20_20_10_2和30_20_10_2,2在SUN主機(jī)上,壓力沒(méi)有變化,僅是有HTTP請(qǐng)求的排隊(duì)(因?yàn)?browser進(jìn)程比f(wàn)cgi進(jìn)程多),SUN上的壓力應(yīng)基本一樣,而receive from fcgi的時(shí)間有較大的差別是不合理的??紤]到在測(cè)30_20_10_2并發(fā)時(shí)有失敗業(yè)務(wù),懷疑可能由于browser上加給web Server過(guò)大造成失敗。這次性能測(cè)試主要測(cè)試系統(tǒng)正常(業(yè)務(wù)正常,壓力情況是預(yù)計(jì)壓力情況)時(shí)的系統(tǒng)情況,而在有業(yè)務(wù)失敗時(shí)往往有些前端進(jìn)程工作不正常,不能對(duì)后臺(tái)造成預(yù)期的壓力,這時(shí)取平均值可能會(huì)造成較大誤差。

10、拿出其中任一個(gè)FCGI進(jìn)程的原始數(shù)據(jù),比較其在20_20_10_2和30_20_10_2兩種壓力下的receive from fcgi的時(shí)間數(shù)據(jù),并用excel產(chǎn)生圖表, 入下圖。 比較上面兩個(gè)圖表可以發(fā)現(xiàn),20_20_10_2時(shí)各時(shí)間點(diǎn)基本都平均分布在1.5秒之內(nèi),僅有極少數(shù)幾個(gè)點(diǎn)在1.5秒之外,且最大不超過(guò)4秒,由此可以認(rèn)為對(duì)這些值取平均值的誤差是可以接受的。而30_20_10_2時(shí)在測(cè)試開(kāi)始階段(800筆之前)和結(jié)束階段(4500筆之后)的時(shí)間點(diǎn)明顯高于中間階段的時(shí)間點(diǎn),這應(yīng)該是由于壓力大時(shí)在測(cè)試開(kāi)始階段30個(gè)browser進(jìn)程沒(méi)有很快把壓力壓向fcgi(壓力小時(shí)也有

11、這種情況,但時(shí)間會(huì)小的多),這樣造成30個(gè)browser進(jìn)程也不是在相近時(shí)間內(nèi)結(jié)束,在結(jié)束階段只有少數(shù)browser進(jìn)程仍沒(méi)有完成,這時(shí)的系統(tǒng)壓力變小,fcgi進(jìn)程等待HTTP請(qǐng)求時(shí)間也變長(zhǎng)。在30_20_10_2時(shí)這種非正常壓力時(shí)間段很長(zhǎng)并且數(shù)據(jù)差距很大,這時(shí)取全部時(shí)間段內(nèi)的數(shù)值的平均值必然帶來(lái)誤差。從上圖可以看到,應(yīng)該取800筆到4500之間系統(tǒng)穩(wěn)定時(shí)的數(shù)據(jù)作為有效數(shù)據(jù)。注意其他環(huán)節(jié)的進(jìn)程的時(shí)間統(tǒng)計(jì)也需要按這一筆數(shù)范圍作為有效數(shù)據(jù)。經(jīng)過(guò)修正后的全部數(shù)據(jù)見(jiàn)下表。數(shù)據(jù)基本正常。               

12、;   10_10_5_2(ms)         20_20_10_2(ms)         30_20_10_2(ms)TPC(筆/秒)                   2.16967         2.28571         2.21911browser        &

13、#160;          4609         8750         13519fcgi         receive from fcgi         343         931         954tpcall         4096 

14、60;       7614         8575tpcommit         176         204         202total_fcgi         4615         8749         9731svr_cc     

15、0;   receive from TE         4        16        18service_before_tpcall         1346         3401         4201tpcall         927        

16、; 927         598service_after_tpcall         38        45        53total_svr_cc         2315        4389        4870waiting&receive from TE     &

17、#160;   289         267         555service 636        611        418經(jīng)驗(yàn):有時(shí)取平均值會(huì)有較大的誤差,尤其是測(cè)試不完全正常的情況。這時(shí)需要仔細(xì)分析原始數(shù)據(jù),排除造成誤差的數(shù)據(jù),以系統(tǒng)穩(wěn)定(正常)時(shí)的數(shù)據(jù)作為有效數(shù)據(jù)。這里excel圖表功能是一個(gè)非常好用的工具。三數(shù)據(jù)分析。從業(yè)務(wù)流程中可以想象,fcgi端的TE_tpcall()時(shí)間似乎應(yīng)該大致等于或略大于(網(wǎng)絡(luò)

18、傳輸時(shí)間等等)svr_cc上服務(wù)總的時(shí)間加上排隊(duì)時(shí)間,而排隊(duì)時(shí)間應(yīng)該這樣線性計(jì)算:前端并發(fā)數(shù)/服務(wù)端并發(fā)數(shù)*服務(wù)端服務(wù)單筆總的平均時(shí)間。但上表的實(shí)際數(shù)據(jù)是TE_tpcall()時(shí)間小于svr_cc上服務(wù)總的時(shí)間!類(lèi)似的,browser端的時(shí)間和fcgi上fcgi進(jìn)程處理時(shí)間也有這種現(xiàn)象,只是相差很小。這是因?yàn)閷?shí)際情況不是我們想象的那樣!SUN主機(jī)上即有客戶端cc1(包括FCGI)節(jié)點(diǎn)也有服務(wù)端cc2節(jié)點(diǎn)的進(jìn)程和TE核心運(yùn)行。如果cc1上只有一個(gè)fcgi進(jìn)程(TE客戶端進(jìn)程)串行發(fā)起業(yè)務(wù),我們可以認(rèn)為fcgi端的TE_tpcall()時(shí)間似乎應(yīng)該大致等于或略大于(網(wǎng)絡(luò)傳輸時(shí)間等等)svr_cc上

19、服務(wù)總的時(shí)間。而當(dāng)cc1上有多個(gè)fcgi進(jìn)程(TE客戶端進(jìn)程)并發(fā)發(fā)起業(yè)務(wù)時(shí),在處理一筆服務(wù)業(yè)務(wù)邏輯的時(shí)間段內(nèi),SUN上的 CPU時(shí)間還會(huì)分給其他客戶進(jìn)程以及TE核心(處理其他事務(wù)),這樣在客戶端并發(fā)情況下,每筆業(yè)務(wù)的服務(wù)端處理時(shí)間實(shí)際上包含一部分其他筆業(yè)務(wù)(客戶進(jìn)程和TE核心)的處理時(shí)間里。而所有的業(yè)務(wù)都是如此,最終TE_tpcall()平均時(shí)間小于svr_cc上服務(wù)總的平均時(shí)間。在cc1進(jìn)程和cc2進(jìn)程的關(guān)系中,由于他們?cè)谝慌_(tái)主機(jī)上,并且cc1進(jìn)程不在少數(shù),因此上述兩個(gè)時(shí)間差別也較大。而在browser和cc1的關(guān)系中,可以排除客戶端進(jìn)程的處理(因?yàn)樵诹硗庖慌_(tái)機(jī)器上)對(duì)服務(wù)端的影響,而只有TE核心并行處理多個(gè)交易對(duì)單筆服務(wù)處理時(shí)間的影響。在測(cè)試環(huán)境下,服務(wù)業(yè)務(wù)處理時(shí)間是主要時(shí)間,TE處理時(shí)間相對(duì)很小,因此上述兩個(gè)時(shí)間差別也非常小。經(jīng)驗(yàn):在多前端并發(fā)情況下,前端等待服務(wù)端應(yīng)答時(shí)間和服務(wù)端處理時(shí)間不是線性比例關(guān)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論