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

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

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

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

  

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

  

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

  

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

  

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

  

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

  

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

  

  

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

  

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

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

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

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

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

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

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

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

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

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

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

您可能感興趣的文章

相關(guān)文章