在直播、電商、遊戲等使用者密集型網際網路行業,訪問併發數通常是非常大的,所以一般會採用產品邏輯最佳化,倒數計時延後請求等方式來緩解瞬時的大併發,如銀行系統繁忙提示使用其他支付方式,但這樣並不能迴避系統本身在壓力下潛藏的效能問題。那麼企業該如何正確發起高併發,如何知道該架構能支援多大的高併發呢?
這裡需要明確一些概念:併發使用者、線上使用者和註冊使用者以及彼此之間的換算方法(估算模型)。系統的最大併發使用者數根據註冊使用者數來獲得,換算方法一般是註冊總人數的5%-20%之間;系統的併發數根據線上人數來獲得,換算方法一般是在30%左右;線上使用者數理解為正在使用系統的使用者數,而註冊使用者數是系統註冊的人數,這個人數靜態的。測試壓力估算時採用如下原則:1、系統線上使用者數取系統總使用者數的20%;2、系統線上使用者併發數取線上使用者數的30%;雲智慧壓測寶給某個直播使用者做了一次效能壓測服務,達到了將近10萬併發使用者的要求,如下圖所示:
壓測寶目前已經能夠滿足大、中型網際網路企業高併發壓力測試需求,隨著資源的不斷增加,其壓測能力還在迅速提升。雲智慧壓測寶特點概覽除了全球分散式雲端壓測與應用效能管理產品透視寶深度融合進行問題診斷、支援大規模併發之外,壓測寶還有很多特點:[1]天然適應移動網際網路大多數網際網路應用的業務過程都是透過呼叫自身或者第三方API來實現的,那麼在業務上線之前,對API及其串接形成的業務過程進行壓力測試是必不可少的。壓測寶能夠對後端服務的API請求及其呼叫過程 進行定義及測試,透過對API呼叫過程的正確性、可用性及響應時間在大規模壓力條件下以及分散式地域環境中的質量來評估後端服務保障到位與否。[2]支援Percentile分析Percentile是統計學術語,如果將一組資料從小到大排序,並計算相應的累計百分位,則某一百分位所對應資料的值就稱為這一百分位的百分位數,可表示為:一組n個觀測值按數值大小排列,如處於p%位置的值稱第p百分位數。
實際上在Load Runner中就採用了這樣的統計方法,因為在大資料量條件下,資料的篩選對分析的準確性尤為重要,壓測寶也使用了這種方法來對事務或者請求進行詳細的響應時間分析,如圖所示,分析事務響應時間時系統預設提供了99%、95%、90%、80%選項,使用者也可以自己定義百分位值。[3]支援多協議型別的框架壓測寶預設支援的協議型別為HTTP/HTTPS,能夠滿足主流網際網路使用者的基本需求,但是某些金融和遊戲類使用者採用了特殊的Socket協議型別,此時如果需要支援的話,就需要在現有框架之上進行擴充套件,目前提供的框架機制如下圖所示:
壓測寶在整體框架設計上,包括整體的壓測點資源排程、資料回傳記統計分析、展現的邏輯使用的是同一套方案,只是在Agent資料採集與傳送的時候用不同 plugin來相容不同socket協議,因為每家客戶都會有自己的Socket協議封裝,這種方式確保了系統的整體可擴充套件性。[4]測試資料支援順序和隨機執行測試任務時,為測試指令碼準備的大量模擬資料,這些資料與指令碼中的變數關聯,能夠在某個時段內產生儘量真實的測試結果。在壓測寶中可以方便得透過匯入excel檔案來建立測試資料,如下圖所示:
在壓測任務中指定指令碼時可以為該指令碼繫結測試資料,同時可以指定測試資料的載入模式,包括順序與隨機。當測試資料條目數量大於併發使用者時選擇順序載入,確保使用者不重複,對某些不允許使用者重複登入或者提交的場景很有效果。
[5]支援介面正確性判斷除了需要對介面的響應時間和可用性進行判斷之外,還需要對事務或者介面的正確率進行驗證,這裡的正確率是指一段時間內,事務正確次數佔事務總次數的百分比,即事務正確次數/事務總次數。事務正確:事務的所有請求都正確才為正確。請求正確:API介面斷言正確則請求正確。在大量併發的情況下,有時候系統會出現“髒資料、錯誤資料”的情況——雖然介面可用,但是其返回結果並不是預期的值,所以在壓測的時候有必要對介面返回結果進行檢測,如下圖所示,透過壓測寶指令碼配置,可以很方便地進行斷言匹配設定與指令碼驗證:
[6]按區域進行效能分析分散式雲端壓測的一個特點是基於雲端伺服器在一段時間內發起大量併發,同時也體現了分散式使用者對系統的真實訪問情況,透過按區域分析,能夠幫助使用者瞭解不同區域發起的使用者量以及每個區域的訪問效能情況。
雲智慧壓測服務模式因為壓測與後端效能分析分析的複雜性,推薦客戶使用雲智慧的壓測服務,透過“一站式”效能壓測服務,幫助企業評估應用效能容量,發現全鏈路效能瓶頸,從而保障產品交付滿足企業靈活多變的業務需求。
雲智慧的壓測服務包括:
1、效能檢測:透過系統處理能力(TPS)、響應時間、併發使用者支援、穩定時間等效能指標判斷效能極限;
2、效能診斷:針對壓測請求,對後端程式碼、伺服器、 資料庫和主機效能進行分析診斷,定位效能瓶頸;
3、最佳化建議:針對應用架構、環境部署、程式碼開發及實施策略提供最佳化建議;
4、容量規劃:基於壓測資料和預測模型與業務發展趨勢,提供容量規劃建議。
雲智慧建立了完整的壓測服務體系,由效能測試專家組成服務團隊,依託壓力測試與效能管理平臺為使用者提供標準化壓測服務,實現產品迭代全生命週期的效能持續改進:
1、需求溝通:進行需求調研和需求確認並完成《壓測需求表》;
2、方案制定:確定壓測場景和壓測目標,溝通確認《壓測方案說明書》;
3、部署實施:根據壓測方案准備壓測場景與資源,定製壓測任務並在指定時間實施壓測;
4、分析報告:實時跟蹤壓測程式,並對壓測結果進行分析,結合效能管理產品深入解析應用後端效能,完成《效能分析總結報告》並提出問題處理建議;雲智慧的服務理念是與使用者一起成長,在過幾年裡,雲智慧監控寶、透視寶伴隨著使用者在不斷進步,相信壓測寶的產品和服務也能為更多的小夥伴提高效率節約成本,幫助大家加速發展!