xskow's road.

          做好自己,做好一切。
          數(shù)據(jù)加載中……
          【轉(zhuǎn)】關(guān)于淘寶網(wǎng)性能測(cè)試的思考(來(lái)自IT168)
          【IT168 評(píng)論】

            什么是性能測(cè)試?國(guó)內(nèi)眾說(shuō)紛紜,理解各不相同。很難說(shuō)清楚,在此截取一段英文的資料,小二在此不敢妄加翻譯。

            In software engineering, performance testing is testing that is performed, from one perspective, to determine how fast some aspect of a system performs under a particular workload. It can also serve to validate and verify other quality attributes of the system, such as scalability, reliability and resource usage.

            從技術(shù)類(lèi)型來(lái)看,當(dāng)前主流的技術(shù)框架,有C/S和B/S。當(dāng)然,性能測(cè)試也相應(yīng)的分成這兩種。它們的測(cè)試方法,是不相同的。

            C/S架構(gòu)的系統(tǒng),性能方面主要關(guān)心的是接口,以及數(shù)據(jù)庫(kù)端是否能承受得住壓力,還有數(shù)據(jù)庫(kù)是否存在并發(fā)問(wèn)題。C/S架構(gòu)形式多樣,雖然關(guān)注的地方比較單一,但是性能測(cè)試非常復(fù)雜,針對(duì)不同的內(nèi)容,可能方法完全不一樣。在此,不做討論。

            B/S架構(gòu)的系統(tǒng),性能方面關(guān)注的內(nèi)容比C/S豐富的多。經(jīng)典的web框架,分三層結(jié)構(gòu):客戶(hù)顯示層、業(yè)務(wù)邏輯層、數(shù)據(jù)庫(kù)層。隨著技術(shù)的發(fā)展,業(yè)務(wù)邏輯層又被拆分成很多層次,例如應(yīng)用層、基礎(chǔ)服務(wù)層、消息同步層、cache等等。業(yè)務(wù)邏輯層又可以使用多種中間件實(shí)現(xiàn),比如java開(kāi)發(fā)的系統(tǒng),會(huì)用到 jboss。整個(gè)系統(tǒng)的性能,除了jboss,還依賴(lài)于apache、網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)性能等。

            計(jì)算機(jī)技術(shù)已經(jīng)廣泛應(yīng)用于企業(yè)管理、互聯(lián)網(wǎng)絡(luò)等方面,相應(yīng)的也誕生了辦公使用的OA系統(tǒng)和大型互聯(lián)網(wǎng)站系統(tǒng)。籠統(tǒng)可以劃分為這兩種。例如,人力資源管理系統(tǒng)、移動(dòng)的信息管理平臺(tái),都應(yīng)該屬于OA系統(tǒng)范疇;而淘寶網(wǎng),應(yīng)該屬于大型互聯(lián)網(wǎng)站系統(tǒng),而且是純粹電子商務(wù)方面的。這里,主要是針對(duì)淘寶網(wǎng)性能測(cè)試的思考。

            在淘寶,系統(tǒng)架構(gòu)比上述的輕描淡寫(xiě)更加復(fù)雜。針對(duì)這么復(fù)雜的大型系統(tǒng),面對(duì)每天巨大的流量、巨大的用戶(hù)群體,如何保證網(wǎng)站的性能?保證網(wǎng)站不宕機(jī)?通過(guò)性能測(cè)試可以解決這些問(wèn)題,但是,新的問(wèn)題又提出了,淘寶網(wǎng)的性能測(cè)試又該如何入手呢?

            或許我們很容易想到,通過(guò)統(tǒng)計(jì)網(wǎng)站的用戶(hù)量,進(jìn)行大量用戶(hù)下的性能測(cè)試,就能保證網(wǎng)站的性能。但,事實(shí)真的是這樣嗎?不然。

            其實(shí),網(wǎng)站與OA系統(tǒng)是有區(qū)別的。一個(gè)信息管理系統(tǒng),它是一定能計(jì)算出總用戶(hù)數(shù)和使用用戶(hù)數(shù)的,也能比較準(zhǔn)確的統(tǒng)計(jì)到并發(fā)用戶(hù)數(shù),而且在一定時(shí)間內(nèi),系統(tǒng)使用的頻率一定是不高的。但是,一個(gè)超大型的電子商務(wù)網(wǎng)站,面對(duì)幾億的用戶(hù)群體,在同一時(shí)間,使用用戶(hù)數(shù)是不停變化的,且在同一時(shí)刻,即便用戶(hù)在線(xiàn),也可能點(diǎn)擊瀏覽的是不同的頁(yè)面,觸發(fā)的是不同的請(qǐng)求。如果單從并發(fā)用戶(hù)的角度去考慮問(wèn)題,進(jìn)行分析和建模,未必適用。

            既然傳統(tǒng)的策略不能用,我們?cè)撛鯓尤ッ鎸?duì)呢?我們需要尋找固定不變的東西,從而找到突破點(diǎn)。從互聯(lián)網(wǎng)的特點(diǎn)出發(fā),可以看到,在線(xiàn)用戶(hù)是不斷變化的,但是頁(yè)面是固定的。用戶(hù)U訪(fǎng)問(wèn)了P頁(yè)面的行為,是能捕獲的。換句話(huà),對(duì)于頁(yè)面P,不管當(dāng)前有100個(gè)用戶(hù),還是1000個(gè)用戶(hù)在使用,頁(yè)面的page view是可以統(tǒng)計(jì)的。這,就是問(wèn)題的突破口。通過(guò)該方式,可以將頁(yè)面流量直接轉(zhuǎn)化成page view,做為性能測(cè)試的預(yù)期目標(biāo),而不去care在線(xiàn)用戶(hù)數(shù)和并發(fā)用戶(hù)數(shù)。得到這個(gè)數(shù)值之后,再通過(guò)建模、分析,將它轉(zhuǎn)化成測(cè)試工具可以衡量的指標(biāo),從而使復(fù)雜的模型變得簡(jiǎn)單化。

            突破口找到之后,接下來(lái)的工作就相對(duì)容易開(kāi)展些。搭建性能測(cè)試環(huán)境、性能測(cè)試設(shè)計(jì)、性能測(cè)試腳本編寫(xiě)與執(zhí)行、結(jié)果分析、調(diào)優(yōu)等環(huán)節(jié),都有了依據(jù)。

            任何問(wèn)題的解決,最難克服的就是突破口。

          原文:http://tech.it168.com/a2009/0527/578/000000578519.shtml

          posted on 2009-05-29 13:37 xskow! 閱讀(172) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): 測(cè)試


          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          links:
          主站蜘蛛池模板: 黎平县| 平和县| 子长县| 周口市| 开封市| 舒兰市| 太原市| 健康| 府谷县| 永康市| 龙州县| 合水县| 内乡县| 武山县| 郎溪县| 泗阳县| 正宁县| 澜沧| 双城市| 邵武市| 新龙县| 津南区| 舟山市| 禄丰县| 禄劝| 乌什县| 台东县| 兴义市| 安义县| 新干县| 大石桥市| 忻州市| 子洲县| 宁陵县| 沭阳县| 内乡县| 玉田县| 资中县| 如东县| 齐河县| 普兰店市|