qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請?jiān)L問 http://qaseven.github.io/

          大型票務(wù)系統(tǒng)性能測試淺析

            其中,優(yōu)化項(xiàng)所有內(nèi)容必須滿足,附加項(xiàng)可以不滿足,在評(píng)測結(jié)果中Y代表滿足、N代表不滿足、Null代表無優(yōu)化項(xiàng)相關(guān)技術(shù)。評(píng)測結(jié)果共分為A、B、C、D、E和U六個(gè)級(jí)別。具體對(duì)應(yīng)關(guān)系如下表所示:

          表2 評(píng)級(jí)標(biāo)準(zhǔn)

            4.2 后端性能測試方法

            測試主要采用商業(yè)級(jí)別的性能測試工具進(jìn)行測試,如HP Loadrunner。通過大規(guī)模模擬實(shí)際用戶的操作行為,測試核心售票系統(tǒng)中注冊、瀏覽、座位選擇、支付等關(guān)鍵業(yè)務(wù)的響應(yīng)時(shí)間和服務(wù)器實(shí)時(shí)處理能力,重點(diǎn)關(guān)注CPU、內(nèi)存、I/O等信息,為操作系統(tǒng)、中間件和數(shù)據(jù)庫以及服務(wù)器的性能優(yōu)化和調(diào)整提供數(shù)據(jù)依據(jù)。

            通常情況下,數(shù)據(jù)中心中用于支撐售票業(yè)務(wù)的服務(wù)器多達(dá)幾百臺(tái),通過軟件在測試中進(jìn)行監(jiān)控更容易實(shí)現(xiàn),如UC Berkeley的開源集群監(jiān)視軟件Ganglia。Ganglia的核心包含gmond、gmetad以及一個(gè)Web前端,通過自動(dòng)解析linux操作系統(tǒng)proc目錄下的文件來獲取操作系統(tǒng)的主要性能指標(biāo)。Ganglia帶來的系統(tǒng)負(fù)載非常少,幾乎不會(huì)影響被監(jiān)控系統(tǒng)性能。對(duì)于中間件和數(shù)據(jù)庫等基礎(chǔ)軟件,可采用其自帶的監(jiān)視器或命令來獲取性能指標(biāo)。

            在測試場景設(shè)計(jì)中,應(yīng)考慮準(zhǔn)確模擬混合業(yè)務(wù)的并發(fā)操作,以及過載訪問的情況,可借鑒下表中的思路進(jìn)行測試:

          表3后端性能測試場景

            通過測試考察運(yùn)行環(huán)境的抗壓能力,在成本和風(fēng)險(xiǎn)可接受范圍內(nèi)對(duì)整個(gè)運(yùn)行環(huán)境進(jìn)行合理優(yōu)化,提高核心售票系統(tǒng)的處理能力。總的來說,高效的核心售票系統(tǒng)在上線前達(dá)到以下要求:

            A、核心業(yè)務(wù)模塊中無明顯效率低下的模塊

            B、多個(gè)數(shù)據(jù)中心間實(shí)現(xiàn)了良好的負(fù)載均衡,整個(gè)運(yùn)行環(huán)境中不存在明顯的服務(wù)器資源消耗過度的情況

            C、整個(gè)運(yùn)行環(huán)境的網(wǎng)絡(luò)承受負(fù)載的能力良好,各銀行支付網(wǎng)點(diǎn)進(jìn)行了合理的組網(wǎng)規(guī)劃,網(wǎng)站與支付系統(tǒng)的流量實(shí)現(xiàn)良好分離

            D、在正常和過載情況下,系統(tǒng)的定單數(shù)量/小時(shí)指標(biāo)在合理范圍內(nèi),代理服務(wù)器、交易服務(wù)器以及數(shù)據(jù)庫服務(wù)器的資源消耗合理

            5、總結(jié)

            通過分析大型票務(wù)系統(tǒng)的訪問特點(diǎn)和規(guī)律,提出了大型票務(wù)系統(tǒng)的性能測試策略和方法,該方法經(jīng)具備普遍的合理性和較強(qiáng)的操作性,但是該方法還有待在更多大型票務(wù)系統(tǒng)性能測試中進(jìn)行應(yīng)用和完善。

            1、引言

           

            隨著互聯(lián)網(wǎng)的普及,越來越多的傳統(tǒng)業(yè)務(wù)轉(zhuǎn)移到了網(wǎng)絡(luò)進(jìn)行。但是由于大型票務(wù)系統(tǒng)受眾訪問高峰、持續(xù)性等特殊性,使得傳統(tǒng)的性能測試策略并不適合該類系統(tǒng)的測試。例如北京奧運(yùn)會(huì)票務(wù)系統(tǒng)和倫敦奧運(yùn)會(huì)票務(wù)系統(tǒng)的在運(yùn)營階段不斷的癱瘓、修復(fù)、上線運(yùn)營的循環(huán)中,大型票務(wù)系統(tǒng)的性能測試顯得尤為重要。

            2、關(guān)鍵技術(shù)

            2.1 Web應(yīng)用響應(yīng)時(shí)間

            其中C1是用戶發(fā)請求前在客戶端完成預(yù)處理階段;C2是客戶端接收到服務(wù)器返響應(yīng)后,對(duì)處理結(jié)果展現(xiàn)的階段;A1是WEB Server或者APP Server對(duì)請求進(jìn)行處理階段;A2是數(shù)據(jù)庫服務(wù)器對(duì)請求進(jìn)行處理階段;A3是WEB Server或者APP Server對(duì)DB Server 返回結(jié)果進(jìn)行處理的階段;N1是請求由客戶端發(fā)出并達(dá)到Web/App Server 的階段;N2是如果需要進(jìn)行數(shù)據(jù)庫相關(guān)的操作,由Web/App Server 將請求發(fā)送至DB Server 階段;N3是DB Server 完成處理并將結(jié)果返回Web/App Server 階段;N4是Web/App Server 完成處理并將結(jié)果返回給客戶端階段。

            從用戶的角度來看,響應(yīng)時(shí)間=(C1+C2)+(A1+A2+A3)+(N1+N2+N3+N4);但是從系統(tǒng)的角度來看,響應(yīng)時(shí)間只包括(A1+A2+A3)+(N1+N2+N3+N4)。

            2.2 前端性能

            所謂前端是相對(duì)于后端而言的,后端是用戶分析用戶請求、執(zhí)行數(shù)據(jù)查詢并對(duì)結(jié)果進(jìn)行組織,形成瀏覽器可以完全呈現(xiàn)的內(nèi)容;前端是負(fù)責(zé)將后端生成的內(nèi)容通過網(wǎng)絡(luò)發(fā)送給客戶段瀏覽器,展現(xiàn)后端請求處理結(jié)果的。前端開發(fā)技術(shù)主要有(X)HTML/CSS/JavaScript/DOM/Flash等各種Web技術(shù)。前端性能主要是在客戶端通過瀏覽器發(fā)送了一個(gè)請求,除去后端處理消耗的時(shí)間的瀏覽器展示后端訪問請求的時(shí)間。也就是圖1中C1+C2+N1+N2階段,其中主要衡量接受到的數(shù)據(jù)的大小、接受響應(yīng)數(shù)據(jù)的碎片程度等方面。

            在交互式應(yīng)用中,響應(yīng)時(shí)間大于15秒,對(duì)于大多數(shù)人是無法容忍的,相應(yīng)時(shí)間大于4秒時(shí),人的短期記憶會(huì)受到影響,工作的連續(xù)性就會(huì)被破壞。對(duì)于一個(gè)用戶的每次訪問來說,80%的響應(yīng)時(shí)間消耗在了前端。而且對(duì)于提升網(wǎng)站的訪問速度而言,如果通過后端優(yōu)化將響應(yīng)速度提升一賠,那么整體的響應(yīng)時(shí)間僅僅只能減少5%到10%;而如果通過優(yōu)化前端將響應(yīng)時(shí)間減少一半,則整體響應(yīng)時(shí)間至少減少40%到45%。

            2.3 后端性能

            后端性能是指web Server或者APP Server在收到客戶端響應(yīng)后,對(duì)其進(jìn)行處理,通過數(shù)據(jù)庫數(shù)據(jù)返回結(jié)果,經(jīng)過處理將返回響應(yīng)發(fā)送給客戶端的過程。也就是圖1中邏輯業(yè)務(wù)流經(jīng)過A1、A2、A3、N2、N3的過程中對(duì)各個(gè)階段的響應(yīng)時(shí)間、服務(wù)器資源利用率、網(wǎng)絡(luò)負(fù)載等方面的衡量。

            性能度量就是通過定義一系列可以反映程序性能的指標(biāo),并從程序?qū)嶋H運(yùn)行的數(shù)據(jù)中獲得度量結(jié)果的過程。性能度量的結(jié)果可以用于評(píng)估系統(tǒng)的性能好壞、分析性能瓶頸和改進(jìn)系統(tǒng)性能等。針對(duì)Web應(yīng)用性能,有兩種常用度量指標(biāo):度量資源使用情況,度量響應(yīng)時(shí)間。

            3、大型票務(wù)系統(tǒng)性能評(píng)價(jià)方法

            3.1 前段性能評(píng)價(jià)方法

            對(duì)于大型票務(wù)系統(tǒng)而言,前端性能的優(yōu)化主要是為了加快響應(yīng)結(jié)果在客戶端的響應(yīng)速度,這樣能夠避免用戶誤以為無響應(yīng)而反復(fù)的刷新造成服務(wù)器端壓力。在評(píng)測過程中主要從如下幾個(gè)方面進(jìn)行考慮:

            A、CSS文件或者代碼至于頂部

            B、JavaScript腳本文件或者代碼至于文件的底部

            C、CSS文件或者代碼中無CSS表達(dá)式

            D、JavaScript腳本文件或者代碼中無重復(fù)腳本

            E、移除無用的CSS

            F、對(duì)JavaScript腳本進(jìn)行了精簡

            G、精簡CSS腳本

            H、外鏈JavaScript腳本并且合并多個(gè)javascript腳本文件

            I、外鏈CSS并且合并多個(gè)CSS文件

            J、應(yīng)用圖片地圖或者CSS Sprites

            K、應(yīng)用Expires頭

            L、無重定向

            M、應(yīng)用GZip壓縮

            N、配置ETag

            在上述的評(píng)測內(nèi)容中主要包括了兩方面,其一是腳本文件的優(yōu)化,資源文件的優(yōu)化和CSS文件的優(yōu)化三大方面。服務(wù)器文件優(yōu)化就是降低在客戶端訪問服務(wù)器端時(shí),除去HTML文檔外其他所有內(nèi)容的物理大小,減小傳輸時(shí)間和加載時(shí)間。其二是依據(jù)HTTP協(xié)議特性,通過配置中間件、修改源程序等操作進(jìn)行的優(yōu)化。在完成上述14項(xiàng)技術(shù)評(píng)價(jià)指標(biāo)后,仍有如下4項(xiàng)附加項(xiàng)需要考慮:

            O、應(yīng)用Ajax緩存

            P、應(yīng)用CDN

            Q、混淆JavaScript

            R、頁面DNS查找最小化

            由于上述四項(xiàng)附加是由相對(duì)復(fù)雜,風(fēng)險(xiǎn)較大、實(shí)現(xiàn)成本較高技術(shù)決定的,因此附加項(xiàng)的滿足條件就視項(xiàng)目的投入成本情況而定,并不一定要完全滿足。

            3.2 后端性能評(píng)價(jià)方法

            由于票務(wù)系統(tǒng)通常在短時(shí)間內(nèi)進(jìn)行集中售票,存在短時(shí)間內(nèi)訪問量陡增、售票期間持續(xù)高壓力以及與銀行支付業(yè)務(wù)緊密相關(guān)等特點(diǎn),因此保證大壓力下的核心售票系統(tǒng)能夠提供高性能的服務(wù)水平,將直接影響終端用戶的購票體驗(yàn)。糟糕的用戶體驗(yàn)包括:

            A、超長的等待時(shí)間

            B、頁面無響應(yīng)

            C、支付失敗

            從性能測試角度看,整個(gè)運(yùn)行環(huán)境在承受來自世界各地高強(qiáng)度的并發(fā)訪問過程中,可能存在以下問題:

            A、網(wǎng)絡(luò)擁塞導(dǎo)致頁面請求響應(yīng)緩慢或超時(shí)報(bào)錯(cuò)

            B、頁面刷新機(jī)制導(dǎo)致在用戶鎖票、坐席分配以及支付階段時(shí),用戶等待時(shí)間增長,訂單處理速度急劇下降

            C、大量的金額統(tǒng)計(jì)以及票務(wù)更新導(dǎo)致交易服務(wù)器和后臺(tái)數(shù)據(jù)庫繁忙

            D、大量的VISA卡支付操作導(dǎo)致支付網(wǎng)點(diǎn)服務(wù)器繁忙,處理效率底下

            為準(zhǔn)確模擬實(shí)際情況,需將歷史經(jīng)驗(yàn)同本次售票方案相結(jié)合,預(yù)計(jì)并發(fā)訪問人數(shù)、網(wǎng)點(diǎn)規(guī)模、數(shù)據(jù)規(guī)模等指標(biāo),在保證數(shù)據(jù)中心實(shí)現(xiàn)良好數(shù)據(jù)共享的情況下,測試的重點(diǎn)應(yīng)涉及一下幾個(gè)方面:

            A、網(wǎng)絡(luò)負(fù)載

            B、多個(gè)數(shù)據(jù)中心間的負(fù)載均衡

            C、峰值期間每小時(shí)定單數(shù)量

            D、代理服務(wù)器、交易服務(wù)器、數(shù)據(jù)庫服務(wù)器的資源消耗情況

            E、長時(shí)間高效服務(wù)的能力

            4、大型票務(wù)系統(tǒng)性能測試方法

            4.1 前段性能測試方法

            前端性能主要的評(píng)測工具有Google的Page Speed和Yahoo的YSlow。Google開發(fā)團(tuán)隊(duì)針對(duì)SteveSounder網(wǎng)頁性能最優(yōu)方法,成功地推出一款基于Firefox/Firebug的開發(fā)類插件Page Speed,旨在幫助開發(fā)人員分析網(wǎng)站性能存在的主要問題,并有針對(duì)性地提出優(yōu)化改進(jìn)意見。它支持的操作系統(tǒng)為Linux、Mac、Windows。在此之前, Google內(nèi)部已經(jīng)廣泛使用PageSpeed優(yōu)化網(wǎng)頁前端性能。YSlow是有雅虎公司開發(fā)的免費(fèi)前端性能檢測工具。YSlow通過檢測網(wǎng)頁上的所有組件,包括JavaScript動(dòng)態(tài)創(chuàng)建的組件,分析網(wǎng)頁的前端性能。同時(shí),YSlow依據(jù)前端性能的分析結(jié)果提出改進(jìn)建議。

            在應(yīng)用上述兩款任意一款給你工具進(jìn)行測試后,將測試結(jié)果對(duì)應(yīng)的填入下面的前段性能評(píng)測記錄表中。

          表1 前段性能評(píng)測記錄表


            其中,優(yōu)化項(xiàng)所有內(nèi)容必須滿足,附加項(xiàng)可以不滿足,在評(píng)測結(jié)果中Y代表滿足、N代表不滿足、Null代表無優(yōu)化項(xiàng)相關(guān)技術(shù)。評(píng)測結(jié)果共分為A、B、C、D、E和U六個(gè)級(jí)別。具體對(duì)應(yīng)關(guān)系如下表所示:

          表2 評(píng)級(jí)標(biāo)準(zhǔn)

            4.2 后端性能測試方法

            測試主要采用商業(yè)級(jí)別的性能測試工具進(jìn)行測試,如HP Loadrunner。通過大規(guī)模模擬實(shí)際用戶的操作行為,測試核心售票系統(tǒng)中注冊、瀏覽、座位選擇、支付等關(guān)鍵業(yè)務(wù)的響應(yīng)時(shí)間和服務(wù)器實(shí)時(shí)處理能力,重點(diǎn)關(guān)注CPU、內(nèi)存、I/O等信息,為操作系統(tǒng)、中間件和數(shù)據(jù)庫以及服務(wù)器的性能優(yōu)化和調(diào)整提供數(shù)據(jù)依據(jù)。

            通常情況下,數(shù)據(jù)中心中用于支撐售票業(yè)務(wù)的服務(wù)器多達(dá)幾百臺(tái),通過軟件在測試中進(jìn)行監(jiān)控更容易實(shí)現(xiàn),如UC Berkeley的開源集群監(jiān)視軟件Ganglia。Ganglia的核心包含gmond、gmetad以及一個(gè)Web前端,通過自動(dòng)解析linux操作系統(tǒng)proc目錄下的文件來獲取操作系統(tǒng)的主要性能指標(biāo)。Ganglia帶來的系統(tǒng)負(fù)載非常少,幾乎不會(huì)影響被監(jiān)控系統(tǒng)性能。對(duì)于中間件和數(shù)據(jù)庫等基礎(chǔ)軟件,可采用其自帶的監(jiān)視器或命令來獲取性能指標(biāo)。

            在測試場景設(shè)計(jì)中,應(yīng)考慮準(zhǔn)確模擬混合業(yè)務(wù)的并發(fā)操作,以及過載訪問的情況,可借鑒下表中的思路進(jìn)行測試:

          表3后端性能測試場景

            通過測試考察運(yùn)行環(huán)境的抗壓能力,在成本和風(fēng)險(xiǎn)可接受范圍內(nèi)對(duì)整個(gè)運(yùn)行環(huán)境進(jìn)行合理優(yōu)化,提高核心售票系統(tǒng)的處理能力。總的來說,高效的核心售票系統(tǒng)在上線前達(dá)到以下要求:

            A、核心業(yè)務(wù)模塊中無明顯效率低下的模塊

            B、多個(gè)數(shù)據(jù)中心間實(shí)現(xiàn)了良好的負(fù)載均衡,整個(gè)運(yùn)行環(huán)境中不存在明顯的服務(wù)器資源消耗過度的情況

            C、整個(gè)運(yùn)行環(huán)境的網(wǎng)絡(luò)承受負(fù)載的能力良好,各銀行支付網(wǎng)點(diǎn)進(jìn)行了合理的組網(wǎng)規(guī)劃,網(wǎng)站與支付系統(tǒng)的流量實(shí)現(xiàn)良好分離

            D、在正常和過載情況下,系統(tǒng)的定單數(shù)量/小時(shí)指標(biāo)在合理范圍內(nèi),代理服務(wù)器、交易服務(wù)器以及數(shù)據(jù)庫服務(wù)器的資源消耗合理

            5、總結(jié)

            通過分析大型票務(wù)系統(tǒng)的訪問特點(diǎn)和規(guī)律,提出了大型票務(wù)系統(tǒng)的性能測試策略和方法,該方法經(jīng)具備普遍的合理性和較強(qiáng)的操作性,但是該方法還有待在更多大型票務(wù)系統(tǒng)性能測試中進(jìn)行應(yīng)用和完善。

           

           

          posted on 2012-07-30 10:36 順其自然EVO 閱讀(282) 評(píng)論(0)  編輯  收藏 所屬分類: 性能測試

          <2012年7月>
          24252627282930
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 梅河口市| 清苑县| 谢通门县| 惠水县| 博乐市| 固原市| 横峰县| 广南县| 江陵县| 武山县| 文成县| 永顺县| 榆林市| 台安县| 无棣县| 南华县| 丹凤县| 德令哈市| 临泉县| 福安市| 汶上县| 固镇县| 连云港市| 永春县| 庆安县| 马公市| 新密市| 即墨市| 台东县| 江门市| 正镶白旗| 福清市| 岳普湖县| 奉节县| 河曲县| 宁乡县| 凤翔县| 福海县| 三河市| 鄱阳县| 德安县|