新聞中心
VS2010分布式和異構(gòu)應(yīng)用程序的負(fù)載測(cè)試(上)
原創(chuàng)
作者:阿風(fēng) 譯 2010-04-23 09:54:01
后端
分布式 本文將介紹的是Visual Studio 2010分布式和異構(gòu)應(yīng)用程序的負(fù)載測(cè)試,包括具體的數(shù)值等內(nèi)容。

站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到祿豐網(wǎng)站設(shè)計(jì)與祿豐網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、國(guó)際域名空間、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋祿豐地區(qū)。
【51CTO獨(dú)家特稿】Visual Studio 2010已經(jīng)來(lái)臨了,看起來(lái)相當(dāng)不錯(cuò)。微軟給其性能管理方案(比如dynatrace)添加了新的界面,用來(lái)擴(kuò)展網(wǎng)絡(luò)測(cè)試以及負(fù)載測(cè)試的能力(請(qǐng)查看Ed Glas的日志,里面介紹了VSTS Load Testing中有哪些內(nèi)容),以超越.NET的開(kāi)發(fā)環(huán)境,并且比負(fù)載測(cè)試報(bào)告更能深層次的告訴你關(guān)于被測(cè)試應(yīng)用程序的性能。51CTO開(kāi)發(fā)頻道向您推薦《VS2010分布式和異構(gòu)應(yīng)用程序的負(fù)載測(cè)試(下)》
但是,在我們探索通過(guò)擴(kuò)展Visual Studio能做什么之前,讓我們看看沒(méi)擴(kuò)展時(shí)我們能得到哪些東西:
Visual Studio 2010的標(biāo)準(zhǔn)負(fù)載測(cè)試報(bào)告
Visual Studio 2010運(yùn)行負(fù)載測(cè)試是為了收集各種各樣的信息。這些信息包括執(zhí)行要求的反應(yīng)時(shí)間、被測(cè)應(yīng)用程序基礎(chǔ)設(shè)施(比如CPU,內(nèi)存,I/O, …)的性能計(jì)數(shù)器,以及你的負(fù)載測(cè)試基礎(chǔ)設(shè)施(負(fù)載控制器及代理)的健康程度。我運(yùn)行了一個(gè)4層(2個(gè)JVM, 2個(gè) CLR)的網(wǎng)絡(luò)應(yīng)用程序。4個(gè)層通過(guò)SOAP web Services (Axis->ASMX)進(jìn)行交流。這個(gè)前端網(wǎng)頁(yè)應(yīng)用程序是用Java Servlets實(shí)現(xiàn)的,在15分鐘的測(cè)試中負(fù)載不斷增加。測(cè)試分為多個(gè)不同的事務(wù)處理,比如:Home Page、Search、Login、BuyDirect等…---當(dāng)運(yùn)行測(cè)試的時(shí)候,我也同時(shí)監(jiān)視了所有相關(guān)應(yīng)用程序服務(wù)器以及負(fù)載測(cè)試基礎(chǔ)設(shè)施的性能計(jì)數(shù)器。Visual Studio 2010 允許我通過(guò)可配置的曲線圖來(lái)監(jiān)視負(fù)載測(cè)試的當(dāng)前狀態(tài),具體曲線圖如下所示:
Visual Studio負(fù)載測(cè)試曲線圖
該圖顯示,隨著用戶負(fù)載的增加,我的事務(wù)(不是全部)處理的反應(yīng)時(shí)間也在增加。圖中還顯示出應(yīng)用程序服務(wù)器上的CPU使用率出現(xiàn)了問(wèn)題(同時(shí)有差不多20個(gè)用戶時(shí),CPU的使用率就會(huì)超過(guò)80%)。在負(fù)載測(cè)試的最后,會(huì)有一個(gè)總結(jié)報(bào)告,描述了對(duì)于這個(gè)應(yīng)用程序執(zhí)行了哪些負(fù)載---發(fā)生了哪些錯(cuò)誤以及哪些頁(yè)反應(yīng)最慢:
負(fù)載測(cè)試總結(jié)報(bào)告
把報(bào)告切換到表格視圖,會(huì)有一個(gè)單個(gè)結(jié)果特征的詳細(xì)分類,比如Transactions、Pages、 Errors(事務(wù)處理,頁(yè),錯(cuò)誤,)等等:
Visual Studio負(fù)載測(cè)試匯總表格
從表格試圖中我們可以得到以下結(jié)論:
? 553頁(yè)的請(qǐng)求超過(guò)了我的每頁(yè)200ms規(guī)則
? 553頁(yè)是屬于menu.do, netpay.do 以及 userlogin.do(當(dāng)你查看單個(gè)錯(cuò)誤請(qǐng)求的時(shí)候,你就可以看到這個(gè))
? 該LastMinute事務(wù)處理是目前最慢的,平均反應(yīng)時(shí)間1.41秒,最大反應(yīng)時(shí)間為5.64秒。
我們不知道的是這些事務(wù)處理為什么這么慢:性能計(jì)數(shù)器表明CPU是一個(gè)潛在的問(wèn)題,但是它沒(méi)有告訴我們,是什么造成了CPU負(fù)載增大,這個(gè)問(wèn)題是否能被解決或者說(shuō)我們是否已經(jīng)達(dá)到了系統(tǒng)性能的上限。
dynaTrace捕獲的Visual Studio 2010負(fù)載測(cè)試執(zhí)行情況報(bào)告
dynaTrace用戶可以從dynaTrace Community Portal(dynaTrace社區(qū)門(mén)戶)下載這個(gè)Visual Studio 2010插件。這個(gè)程序包里含有一個(gè)Visual Studio外接程序以及一個(gè)Visual Studio測(cè)試插件庫(kù),擴(kuò)展了其網(wǎng)絡(luò)測(cè)試以及負(fù)載測(cè)試的能力。我們也提供Automatic Session Analysis(自動(dòng)會(huì)話分析插件),能夠幫忙分析從較長(zhǎng)時(shí)間的負(fù)載測(cè)試中捕獲的數(shù)據(jù)。
在我的4層應(yīng)用程序中進(jìn)行負(fù)載測(cè)試時(shí),我使用的是dynaTrace Test Center Edition(測(cè)試中心版)。這個(gè)Visual Studio 2010插件確保了dynaTrace能夠自動(dòng)捕獲所有dynaTrace會(huì)話中的服務(wù)器端事務(wù)處理(PurePath的)。它還確保那些跟Web Test腳本中名字相同的事務(wù)處理都會(huì)傳遞到dynaTrace。
在運(yùn)行負(fù)載測(cè)試過(guò)程中,我創(chuàng)建的Load Testing Performance Dashboard(負(fù)載測(cè)試性能儀表板)使得我可以觀察傳入的請(qǐng)求以及每個(gè)JVM和CLR中的內(nèi)存使用情況。我能看到我的應(yīng)用程序中是哪些層次對(duì)系統(tǒng)的性能產(chǎn)生了影響--- ADO.NET, ASP.NET, SharePoint, Servlets, JDBC, Web Services, RMI, .NET Remoting等等層---dynaTrace會(huì)自動(dòng)監(jiān)測(cè)這些層,而且還幫助我理解應(yīng)用程序中實(shí)際上是哪些部件/層次消耗了大部分的執(zhí)行時(shí)間以及逐漸增加的負(fù)載對(duì)這些部件的影響分別是怎樣的。除此以外,我還能觀察到執(zhí)行的SQL語(yǔ)句數(shù)量(不管是通過(guò)Java還是.NET),以及發(fā)生的異常情況的數(shù)量:
dynaTrace負(fù)載測(cè)試性能儀表板
儀表板左上角的圖表中顯示的是單個(gè)事務(wù)處理的反應(yīng)時(shí)間,其下方的圖表是累積的事務(wù)處理數(shù)量。這些是進(jìn)入的請(qǐng)求數(shù)量,從中我們很容易獲悉VS2010是怎樣在測(cè)試中增加負(fù)載的。
儀表板右上角的圖表是兩個(gè)JVM的內(nèi)存使用情況,其下方的圖表是兩個(gè)CLR的內(nèi)存使用情況(在我的第二個(gè)JVM中似乎存在著一個(gè)內(nèi)存泄漏,而且還有一個(gè)非?!鞍察o的”CLR)。
儀表板左下角的圖表顯示的是我的應(yīng)用程序隨著逐漸負(fù)載的增加有什么變化。我能看到我的應(yīng)用程序表現(xiàn)一直都還不錯(cuò),直到一個(gè)特定的用戶負(fù)載得出現(xiàn)。但是,Web Service Layer(網(wǎng)絡(luò)服務(wù)層)(黑灰色)的性能表現(xiàn)開(kāi)始比其他所有有關(guān)的應(yīng)用層差很多。
儀表板右下角的數(shù)據(jù)庫(kù)語(yǔ)句數(shù)量以及異常情況數(shù)量告訴我,這些計(jì)數(shù)器隨著負(fù)載的增加而線性的增長(zhǎng)。但是,似乎我們有相當(dāng)多的數(shù)據(jù)庫(kù)查詢(高達(dá)350/second),還有非常多的異常情況值得調(diào)查。
在負(fù)載測(cè)試完成之后,我得到的第一個(gè)報(bào)告顯示出速度最慢的網(wǎng)絡(luò)事務(wù)處理,它們按照Visual Studio中的名字進(jìn)行歸類:
dynaTrace每個(gè)網(wǎng)絡(luò)處理的性能報(bào)告
從上圖中,我可以看到LastMinute處理的確是最慢的處理,反應(yīng)時(shí)間5.6秒是最大的。從這個(gè)報(bào)告中,我們能夠?qū)⒏呒?jí)事務(wù)處理分解成應(yīng)用層、數(shù)據(jù)庫(kù)調(diào)用以及方法調(diào)用,從而進(jìn)行細(xì)致的分析,這是該報(bào)告的最大優(yōu)點(diǎn)所在。根據(jù)這個(gè)分類我們能夠立即看出對(duì)于Last Minute處理來(lái)說(shuō),Java Web Service是最高的性能消耗者。我們也能看到448個(gè)對(duì)此事務(wù)處理的請(qǐng)求包含有幾千個(gè)數(shù)據(jù)庫(kù)查詢,我們還能看到是哪些Java以及.NET方法占據(jù)了系統(tǒng)的執(zhí)行時(shí)間。點(diǎn)擊Slowest Page會(huì)打開(kāi)PurePath Dashlet,它顯示出每個(gè)已執(zhí)行的事務(wù)處理。如果按持續(xù)時(shí)間進(jìn)行排列,還可以顯示出各個(gè)處理的執(zhí)行時(shí)間有著巨大的差異。PurePath Hot Spot視圖讓人很簡(jiǎn)單的就能揪出在最慢的事務(wù)處理中最消耗性能的方法:
運(yùn)行最慢的事務(wù)處理中,不同的PurePath之間差別很大
有了PurePath Comparison功能,我可以進(jìn)一步找出兩個(gè)執(zhí)行時(shí)間差別很大的事務(wù)處理有什么不同:
通過(guò)可視圖表以及PurePath Comparison Tree,我們可以看到時(shí)間上的區(qū)別主要是因?yàn)樵谠撉闆r下進(jìn)行SpecialOffer和所有調(diào)用構(gòu)成的。底部的表格列出了這兩個(gè)PurePath之間所有時(shí)間和結(jié)構(gòu)的不同之處,讓我們更加深入的了解還有沒(méi)有其他方面的差別。
網(wǎng)站題目:VS2010分布式和異構(gòu)應(yīng)用程序的負(fù)載測(cè)試(上)
當(dāng)前路徑:http://www.5511xx.com/article/dphpcpg.html


咨詢
建站咨詢
