作者:趙佳佳.
每年翻倍。 十。
1、在聖誕節、春節促銷的消費狂歡中,我們可以看到,在高峰時段,品牌直播間容納了數百萬人線上發彈幕、搶貨、搶紅包,品牌店內有同規模的諮詢、追加購買、下單、支付等。 使用者數量不斷增加,互動越來越頻繁,脈衝流量場景不規則,給應用業務帶來了諸多挑戰。
在面對效能挑戰之前,我們先簡單梳理一下零售電商的使用者旅程和業務邏輯。 以電商**APP為例,面對突然湧入的使用者,應用服務會遇到這樣的場景:有的使用者在不斷查詢產品資訊,有的使用者在註冊賬號,有的使用者在修改購物車資訊,有的使用者在下單付款等等。 另一方面,電子商務平台包括 Web 應用程式、中介軟體和資料庫等元件。 前端 Web 應用程式負責接收和處理來自使用者的 HTTP 請求,並生成網頁以反饋給使用者並與之互動中介軟體應用程式負責執行其中的業務邏輯;後端資料庫和儲存負責讀取和儲存使用者和產品的資訊和狀態。 為了提公升訪問體驗和服務效能,一些電商平台會在資料庫前部署資料快取裝置。 負載均衡部署在外圍,用於均衡大量使用者和多台伺服器之間的負載。 如前所述,在高峰時段,品牌直播間必須同時容納數百萬人線上傳送彈幕、搶貨、搶紅包,如果服務出現故障,將造成嚴重後果,給使用者帶來巨大麻煩。 而且,使用者數量越多,影響越廣,這不僅影響使用者口碑,還直接影響企業收入。
(1)流量規模難以預測
電子商務的應用服務通常由兩部分組成乙個是推薦和搜尋,主要為使用者推薦各種產品,給使用者選擇產品帶來方便;二是交易支付即附加元件、訂單、付款等環節。 兩部分的流量模型完全不同,推薦&搜尋部分的流量呈現為慢曲線,對於服務來說,流量壓力逐漸增大;但是,交易部分的流量急劇上公升,尤其是在雙11搶購活動中,壓力會瞬間增加到峰值,生產研發服務沒有猶豫時間,這也是電商產品的易用性高於其他網際網絡產品的重要原因。
但是,頂點是什麼,什麼時候會到來,產研團隊很難提前通過業務團隊的陳述。 如果要模擬真實使用者進行測試,不同壓力測試造成的成本是不同的,成本高了就高了,低了就無效了。因此,在活動準備期間估算流量非常重要。 這也是這些年雙11籌備過程中最大的難點:如何評估核心頁面的實際承載能力以及從使用者登入到購買完成的全鏈條交易支付。 自2024年首屆雙11以來,雙11業務規模逐年快速增長,零高峰流量帶來的不確定性越來越不穩定。
(2)不同場景下的壓力測試
在估算了流量規模之後,第二個挑戰是如何根據實際使用者使用流程,形成最接近的業務場景。 電商應用服務通常有很多服務介面,使用者在使用過程中會呼叫其中的一些介面。 一種壓測方法是對所有介面進行統一的壓測,增加相同的壓力來計算業務容量,然後根據業務容量擴充套件到相關集群。 壓測的另一種方式是進行場景化壓測,因為每個使用者的流程不同,不同業務介面承載的壓力也不同,從而用最少的服務資源支援最大的流量。
在設計和選擇壓測方案時,經常會遇到兩個問題:壓測會影響線上服務,影響正常訪問系統的使用者。 壓測會汙染線上資料,壓測資料會寫入線上資料庫。 為了解決這兩個問題,行業內普遍採用以下解決方案,以下解決方案各有優缺點,適用場景也不同,可以根據業務所處的階段靈活選擇。
選擇壓力測試解決方案後,可以開始配置壓力測試指令碼和壓力模型。 業界常見的壓力測試工具包括JMemeter、效能測試PTS等。 無一例外,這些工具需要將壓力測試業務 API 編排到壓力測試指令碼中。 這一步的重點是確認壓測的 API 沒有缺失,並且 API 編排的順序是否符合使用者邏輯。 對於電商業務壓測,如果指令碼中省略了登入認證API,後續的訂單、物流、庫存等介面都會在許可權驗證步驟報錯,無法執行正常的業務邏輯,無法模擬真實業務場景。
同時,根據實際業務場景選擇最合適的壓力模型,例如脈衝模型模擬瞬間流量突然增加,常用於限時搶購業務場景增量模型可以模擬一定時間段內使用者數量的增加,常用於模擬預熱的業務場景。 在確定壓力值和增量模型後,還需要確定壓力流的地理分布,應盡可能擬合真實使用者分布,以確保測試結果真實可信。 對於區域**業務,壓力機分布在同乙個本地機房是可以理解的。 如果是全國性**業務,壓力機也應根據使用者分布情況,部署在全國各地區。
完成以上準備工作後,即可開始正式的壓力測試。 在此過程中,我們專注於三個核心指標:請求成功率、請求響應時間(RT)和系統吞吐量(QPS)。 請求的成功率不能只看整體的請求成功率,還要關注一些核心API的成功率,避免出現整體成功率達標,核心API成功率不足的情況。 請求響應時間,需要注意。 等關鍵分位數指標均符合預期,平均響應時間沒有太大的參考意義,因為壓測需要保證絕大多數使用者的體驗,而平均值在離散程度不明確時容易造成誤判。 系統吞吐量是系統可以承受多少訪問的指標,也是壓力測試不可或缺的標準。
當三個核心指標達到拐點時,可以認為服務存在效能瓶頸,可以停止壓力測試,開始準備定位和分析效能問題。 如果這三個核心指標在整個壓力測試過程中保持穩定,則服務已滿足可用性預期。 但是,我們也可以按照10-20%的比例不斷提高壓力值,對服務進行峰值“觸控”壓力測試,觀察服務極限值是多少,從而真正了解內心的底層。
正如你所看到的,在整個壓力測試過程中,有很多事情需要提前準備為了幫助企業和開發者更高效、更便捷地進行效能壓測,阿里雲推出了效能測試PTS。 效能測試 PTS 經過多年雙 11 活動的錘煉,通過彈性彈性,可以輕鬆發起百萬級併發流量,省去機器和人力成本通過全域性流量發起和流量模型的精準控制,可以真實地模擬使用者的流量**,具備零編碼場景編排、流量記錄等功能,輕鬆模擬複雜的使用者互動。 經過壓力測試後,豐富的監控和問題診斷功能,幫助企業快速發現瓶頸,提高系統效能和穩定性。
乙個全網粉絲超過1000萬的彩妝品牌,過去在面對大促銷時,要保證系統穩定性的壓力很大,而第三方介面和一些緩慢的SQL可能會導致嚴重的線上故障在大促期間,資源和日常資源之間存在較大差異,需要頻繁擴容和縮容此外,壓力測試和系統容量評估的工作非常頻繁,需要有健壯的規範化機制作為支撐為了解決這些問題,支撐業務的快速發展,客戶充分利用PTS對系統的單機容量和整體容量進行評估,並提前預測單機可以承載的業務量和整體業務量,從而為業務未來大規模推廣需求做出合理的資源規劃和成本**。
某銀行機構需要同時支援數百萬使用者,並且存在麥克風連線、點讚、紅包等頻繁互動,對系統效能、穩定性、應急響應等要求極高。 客戶利用PTS的流量記錄和多協議壓測能力,精準模擬手機使用者的操作。 其強大的壓力和速度控制功能可模擬終端使用者流量**和模型。 通過這種方式,它可以幫助客戶準確規劃系統容量,預演可能出現的突發事件,並確保整個系統的穩定性。 同時,PTS大幅縮短了壓測引擎的準備時間,將引擎模擬時間縮短至40秒,模擬百萬使用者**在壓力測試過程中,提供了多種壓力測試流量監控方法,幫助定位問題壓力測試完成後,立即停止試壓流程,並提供多維度、多角度的試壓報告和問題診斷工具,大大提高了試壓效率。 PTS幫助客戶順利完成直播儀式,**數突破200萬,點讚數突破1700萬。