大、中型互聯(lián)網(wǎng)企業(yè)該如何進(jìn)行高并發(fā)壓力測(cè)試

2016-08-25 18:54:26 來(lái)源:互聯(lián)網(wǎng)作者:佚名 人氣: 次閱讀 152 條評(píng)論

在直播、電商、游戲等用戶(hù)密集型互聯(lián)網(wǎng)行業(yè),訪問(wèn)并發(fā)數(shù)通常是非常大的,所以一般會(huì)采用產(chǎn)品邏輯優(yōu)化,倒計(jì)時(shí)延后請(qǐng)求等方式來(lái)緩解瞬時(shí)的大并發(fā),如銀行系統(tǒng)繁忙提示使...

  在直播、電商游戲等用戶(hù)密集型互聯(lián)網(wǎng)行業(yè),訪問(wèn)并發(fā)數(shù)通常是非常大的,所以一般會(huì)采用產(chǎn)品邏輯優(yōu)化,倒計(jì)時(shí)延后請(qǐng)求等方式來(lái)緩解瞬時(shí)的大并發(fā),如銀行系統(tǒng)繁忙提示使用其他支付方式,但這樣并不能回避系統(tǒng)本身在壓力下潛藏的性能問(wèn)題。那么企業(yè)該如何正確發(fā)起高并發(fā),如何知道該架構(gòu)能支持多大的高并發(fā)呢?

  

  這里需要明確一些概念:并發(fā)用戶(hù)、在線用戶(hù)和注冊(cè)用戶(hù)以及彼此之間的換算方法(估算模型)。系統(tǒng)的最大并發(fā)用戶(hù)數(shù)根據(jù)注冊(cè)用戶(hù)數(shù)來(lái)獲得,換算方法一般是注冊(cè)總?cè)藬?shù)的5%-20%之間;系統(tǒng)的并發(fā)數(shù)根據(jù)在線人數(shù)來(lái)獲得,換算方法一般是在30%左右;在線用戶(hù)數(shù)理解為正在使用系統(tǒng)的用戶(hù)數(shù),而注冊(cè)用戶(hù)數(shù)是系統(tǒng)注冊(cè)的人數(shù),這個(gè)人數(shù)靜態(tài)的。測(cè)試壓力估算時(shí)采用如下原則:1、系統(tǒng)在線用戶(hù)數(shù)取系統(tǒng)總用戶(hù)數(shù)的20%;2、系統(tǒng)在線用戶(hù)并發(fā)數(shù)取在線用戶(hù)數(shù)的30%;云智慧壓測(cè)寶給某個(gè)直播用戶(hù)做了一次性能壓測(cè)服務(wù),達(dá)到了將近10萬(wàn)并發(fā)用戶(hù)的要求,如下圖所示:

  

  壓測(cè)寶目前已經(jīng)能夠滿(mǎn)足大、中型互聯(lián)網(wǎng)企業(yè)高并發(fā)壓力測(cè)試需求,隨著資源的不斷增加,其壓測(cè)能力還在迅速提升。云智慧壓測(cè)寶特點(diǎn)概覽除了全球分布式云端壓測(cè)與應(yīng)用性能管理產(chǎn)品透視寶深度融合進(jìn)行問(wèn)題診斷、支持大規(guī)模并發(fā)之外,壓測(cè)寶還有很多特點(diǎn):[1]天然適應(yīng)移動(dòng)互聯(lián)網(wǎng)大多數(shù)互聯(lián)網(wǎng)應(yīng)用的業(yè)務(wù)過(guò)程都是通過(guò)調(diào)用自身或者第三方API來(lái)實(shí)現(xiàn)的,那么在業(yè)務(wù)上線之前,對(duì)API及其串接形成的業(yè)務(wù)過(guò)程進(jìn)行壓力測(cè)試是必不可少的。壓測(cè)寶能夠?qū)蠖朔?wù)的API請(qǐng)求及其調(diào)用過(guò)程 進(jìn)行定義及測(cè)試,通過(guò)對(duì)API調(diào)用過(guò)程的正確性、可用性及響應(yīng)時(shí)間在大規(guī)模壓力條件下以及分布式地域環(huán)境中的質(zhì)量來(lái)評(píng)估后端服務(wù)保障到位與否。[2]支持Percentile分析Percentile是統(tǒng)計(jì)學(xué)術(shù)語(yǔ),如果將一組數(shù)據(jù)從小到大排序,并計(jì)算相應(yīng)的累計(jì)百分位,則某一百分位所對(duì)應(yīng)數(shù)據(jù)的值就稱(chēng)為這一百分位的百分位數(shù),可表示為:一組n個(gè)觀測(cè)值按數(shù)值大小排列,如處于p%位置的值稱(chēng)第p百分位數(shù)。

  

  實(shí)際上在Load Runner中就采用了這樣的統(tǒng)計(jì)方法,因?yàn)樵诖髷?shù)據(jù)量條件下,數(shù)據(jù)的篩選對(duì)分析的準(zhǔn)確性尤為重要,壓測(cè)寶也使用了這種方法來(lái)對(duì)事務(wù)或者請(qǐng)求進(jìn)行詳細(xì)的響應(yīng)時(shí)間分析,如圖所示,分析事務(wù)響應(yīng)時(shí)間時(shí)系統(tǒng)默認(rèn)提供了99%、95%、90%、80%選項(xiàng),用戶(hù)也可以自己定義百分位值。[3]支持多協(xié)議類(lèi)型的框架壓測(cè)寶默認(rèn)支持的協(xié)議類(lèi)型為HTTP/HTTPS,能夠滿(mǎn)足主流互聯(lián)網(wǎng)用戶(hù)的基本需求,但是某些金融和游戲類(lèi)用戶(hù)采用了特殊的Socket協(xié)議類(lèi)型,此時(shí)如果需要支持的話,就需要在現(xiàn)有框架之上進(jìn)行擴(kuò)展,目前提供的框架機(jī)制如下圖所示:

  

  壓測(cè)寶在整體框架設(shè)計(jì)上,包括整體的壓測(cè)點(diǎn)資源調(diào)度、數(shù)據(jù)回傳記統(tǒng)計(jì)分析、展現(xiàn)的邏輯使用的是同一套方案,只是在Agent數(shù)據(jù)采集與發(fā)送的時(shí)候用不同 plugin來(lái)兼容不同socket協(xié)議,因?yàn)槊考铱蛻?hù)都會(huì)有自己的Socket協(xié)議封裝,這種方式確保了系統(tǒng)的整體可擴(kuò)展性。[4]測(cè)試數(shù)據(jù)支持順序和隨機(jī)執(zhí)行測(cè)試任務(wù)時(shí),為測(cè)試腳本準(zhǔn)備的大量模擬數(shù)據(jù),這些數(shù)據(jù)與腳本中的變量關(guān)聯(lián),能夠在某個(gè)時(shí)段內(nèi)產(chǎn)生盡量真實(shí)的測(cè)試結(jié)果。在壓測(cè)寶中可以方便得通過(guò)導(dǎo)入excel文件來(lái)創(chuàng)建測(cè)試數(shù)據(jù),如下圖所示:

  

  在壓測(cè)任務(wù)中指定腳本時(shí)可以為該腳本綁定測(cè)試數(shù)據(jù),同時(shí)可以指定測(cè)試數(shù)據(jù)的加載模式,包括順序與隨機(jī)。當(dāng)測(cè)試數(shù)據(jù)條目數(shù)量大于并發(fā)用戶(hù)時(shí)選擇順序加載,確保用戶(hù)不重復(fù),對(duì)某些不允許用戶(hù)重復(fù)登錄或者提交的場(chǎng)景很有效果。

  

  [5]支持接口正確性判斷除了需要對(duì)接口的響應(yīng)時(shí)間和可用性進(jìn)行判斷之外,還需要對(duì)事務(wù)或者接口的正確率進(jìn)行驗(yàn)證,這里的正確率是指一段時(shí)間內(nèi),事務(wù)正確次數(shù)占事務(wù)總次數(shù)的百分比,即事務(wù)正確次數(shù)/事務(wù)總次數(shù)。事務(wù)正確:事務(wù)的所有請(qǐng)求都正確才為正確。請(qǐng)求正確:API接口斷言正確則請(qǐng)求正確。在大量并發(fā)的情況下,有時(shí)候系統(tǒng)會(huì)出現(xiàn)“臟數(shù)據(jù)、錯(cuò)誤數(shù)據(jù)”的情況——雖然接口可用,但是其返回結(jié)果并不是預(yù)期的值,所以在壓測(cè)的時(shí)候有必要對(duì)接口返回結(jié)果進(jìn)行檢測(cè),如下圖所示,通過(guò)壓測(cè)寶腳本配置,可以很方便地進(jìn)行斷言匹配設(shè)定與腳本驗(yàn)證:

  

  

  [6]按區(qū)域進(jìn)行性能分析分布式云端壓測(cè)的一個(gè)特點(diǎn)是基于云端服務(wù)器在一段時(shí)間內(nèi)發(fā)起大量并發(fā),同時(shí)也體現(xiàn)了分布式用戶(hù)對(duì)系統(tǒng)的真實(shí)訪問(wèn)情況,通過(guò)按區(qū)域分析,能夠幫助用戶(hù)了解不同區(qū)域發(fā)起的用戶(hù)量以及每個(gè)區(qū)域的訪問(wèn)性能情況。

  

  云智慧壓測(cè)服務(wù)模式因?yàn)閴簻y(cè)與后端性能分析分析的復(fù)雜性,推薦客戶(hù)使用云智慧的壓測(cè)服務(wù),通過(guò)“一站式”性能壓測(cè)服務(wù),幫助企業(yè)評(píng)估應(yīng)用性能容量,發(fā)現(xiàn)全鏈路性能瓶頸,從而保障產(chǎn)品交付滿(mǎn)足企業(yè)靈活多變的業(yè)務(wù)需求。

  云智慧的壓測(cè)服務(wù)包括:

  1、性能檢測(cè):通過(guò)系統(tǒng)處理能力(TPS)、響應(yīng)時(shí)間、并發(fā)用戶(hù)支持、穩(wěn)定時(shí)間等性能指標(biāo)判斷性能極限;

  2、性能診斷:針對(duì)壓測(cè)請(qǐng)求,對(duì)后端代碼、服務(wù)器、 數(shù)據(jù)庫(kù)和主機(jī)性能進(jìn)行分析診斷,定位性能瓶頸;

  3、優(yōu)化建議:針對(duì)應(yīng)用架構(gòu)、環(huán)境部署、代碼開(kāi)發(fā)及實(shí)施策略提供優(yōu)化建議;

  4、容量規(guī)劃:基于壓測(cè)數(shù)據(jù)和預(yù)測(cè)模型與業(yè)務(wù)發(fā)展趨勢(shì),提供容量規(guī)劃建議。

  云智慧建立了完整的壓測(cè)服務(wù)體系,由性能測(cè)試專(zhuān)家組成服務(wù)團(tuán)隊(duì),依托壓力測(cè)試與性能管理平臺(tái)為用戶(hù)提供標(biāo)準(zhǔn)化壓測(cè)服務(wù),實(shí)現(xiàn)產(chǎn)品迭代全生命周期的性能持續(xù)改進(jìn):

  1、需求溝通:進(jìn)行需求調(diào)研和需求確認(rèn)并完成《壓測(cè)需求表》;

  2、方案制定:確定壓測(cè)場(chǎng)景和壓測(cè)目標(biāo),溝通確認(rèn)《壓測(cè)方案說(shuō)明書(shū)》;

  3、部署實(shí)施:根據(jù)壓測(cè)方案準(zhǔn)備壓測(cè)場(chǎng)景與資源,定制壓測(cè)任務(wù)并在指定時(shí)間實(shí)施壓測(cè);

  4、分析報(bào)告:實(shí)時(shí)跟蹤壓測(cè)進(jìn)程,并對(duì)壓測(cè)結(jié)果進(jìn)行分析,結(jié)合性能管理產(chǎn)品深入解析應(yīng)用后端性能,完成《性能分析總結(jié)報(bào)告》并提出問(wèn)題處理建議;云智慧的服務(wù)理念是與用戶(hù)一起成長(zhǎng),在過(guò)幾年里,云智慧監(jiān)控寶、透視寶伴隨著用戶(hù)在不斷進(jìn)步,相信壓測(cè)寶的產(chǎn)品和服務(wù)也能為更多的小伙伴提高效率節(jié)約成本,幫助大家加速發(fā)展!

您可能感興趣的文章

相關(guān)文章