您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關如何進行Now直播應用的后臺服務器性能測試的實踐,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
直播的火爆帶來了海量的用戶,也帶來了海量的服務器并發。下面分析了目前直播行業存在的難點,從騰訊目前的新直播產品——NOW直播出發, 了解直播應用背后的那些事。
直播,突然成為了中國互聯網的一個最流行的詞匯。在《2016-2020年中國網絡直播行業深度調研及投資前景預測報告》中的數據表示,2015年,全國在線直播平臺數量接近200家,其中網絡直播的市場規模約為90億,網絡直播平臺用戶數量已經達到2億,大型直播平臺每日高峰時段同時在線人數接近400萬,同時直播的房間數量超過3000個,更可怕的是,這一數據還在以極快的速度向上攀升。
直播平臺用戶數量2億是什么概念?2016版的《微信數據化報告》中提到,目前微信用戶達到了6.97億人,也就是說,在你身邊同齡的3-4個朋友之中,很有可能有一個人是網絡直播的用戶。
直播火沒火,看用戶就知道,但是直播有沒有前景,就要看科技巨頭們對它的態度了。
國外的Facebook推出的Facebook live給其用戶帶來的全新的體驗,不僅增加了用戶粘性,還給Facebook帶來了新的收入來源。而YouTube live與電視點播相結合的經營模式也給用戶帶來了新的視頻體驗。
國內方面,斗魚、虎牙、熊貓、龍珠、奇秀、花椒等專業的直播平臺如雨后春筍般出現。阿里、百度、騰訊等巨頭也不甘人后,紛紛推出了自己的直播平臺。而直播所涉及的行業領域也從電競、社交、電商等各個行業間開始廣泛出現。
如此大的用戶體量下,直播類的應用對于服務器的要求要高過一般的應用,我們來看看直播類的應用對服務器有哪些更多的挑戰?
視頻數據和文本數據完全是兩個量級的概念,假設一個直播房間有5000人,視頻1s的數據60K,那么就需要5000*60=300000KB=292.97MB
,基本已經達到了2-3三個手游的大小了,而這只是一個房間產生的流量。今年4月劉濤入駐直播領域,創造了同時在線人數17萬,總收看人數71萬的數據,如果按照這個數量,服務器就會產生9.73Gbps的帶寬,而當前某著名網絡直播APP日活躍用戶超過了800W,服務器將承受458Gbps的帶寬壓力。
不同于普通應用和游戲,直播類應用的使用時間段非常的集中,一般來說,社交類的直播app時間集中在晚飯后時間至睡前20點~23點,游戲類App活躍時間集中在下班后18~20點間,秀場類App集中在13點和18(午休及下班時間),因此在這短短幾小時之間,會涌入大量的用戶,一次大V的直播通常就會造成百萬級的用戶登錄,APP需要有詳盡的限流、分流和負載均衡策略,保證服務器不會被沖垮。
(數據來源:大數據解析網絡直播市場到底有多火)
直播應用與普通應用相比,交互的功能異常多,除了直播視頻流的服務器壓力之外,還要包括用戶消息推送、聊天、禮物、支付以及統計系統帶來的數據交互壓力,服務器進行需要識別不同的業務字段,才能精確判定用戶的行為是否成功完成,從交互頻率的角度上來說,直播類的應用,與其說更像應用,不如說更像游戲。
直播需要一個很強的即時性,如果主播的行為和用戶的評論無法同步的時候,會給用戶非常不好的體驗,如果一個用戶發現其他用戶在歡呼鼓掌,但是屏幕中的主播什么動靜都沒有的時候,這個直播應用基本可以不要再用了,因此直播類應用不僅需要面對更大的數據量和更高的并發,還要保證更低的延遲。通常可以要保證服務器的處理數據速度要快,要有足夠強大的帶寬;另外則是通過P2P算法保證數據分享的合理性,保證服務器的數據和P2P的數據可以達到平衡。
直播應用下的服務器成本,與將要承受的流量情況息息相關,不同的直播應用,交互的頻度、深度不同,就會產生不同的帶寬壓力。我們一起來算一筆帳,為直播應用準備服務器,大概需要多少錢?
首先,我們要買一個服務器。買多大的服務器呢?服務器的帶寬要滿足直播應用的帶寬需求,在這里,科普一下帶寬是怎么看的:
帶寬通常使用的單位是bps(bits per second),8 bits通常等于1Byte,100Mbps在換算成我們熟悉的文件大小的時候,要除以8,也就是在100Mbps的帶寬下,每秒鐘可以下載12.5MB的文件,那么一般來說,直播應用需要多少帶寬呢?見下圖:
直播應用一般使用的分辨率是360p,720p以及1080p三種,為了看得清晰一些,一般人們都會選擇720p,那么在720p的清晰度下,直播應用需要1024kbps的帶寬,也就是每秒傳遞的數據大小為1024/8=128KB。簡單來說,如果在APP中打開直播,使用了720p的分辨率,一個用戶每秒鐘需要傳輸128KB的數據(當然實際情況中直播應用還有消息推送,送禮,支付等行為,直播畫面分辨率、壓縮比等區別,實際會消耗更多的數據)。
那么,直播類應用現在需要承載多少用戶呢?
以目前最紅火的幾大直播平臺為例,斗魚 TV 的在線人數可以超過1000 萬,戰旗 TV 在在線人數約500 萬左右,龍珠在線人數約 400 萬左右,虎牙在線人數約100萬,直播平臺的帶寬成本通常是帶寬峰值月結的形式,如果當月最高同時在線人數是200W,也就是每秒要傳輸的數據量高達244GB,那么理論上消耗的帶寬就是2T左右,一個月的開銷就在4000W人民幣左右。
對于直播應用來說,服務器最難處理的環節就是視頻流量和用戶交互等高頻率高帶寬的場景,用戶的行為是難以預測的,經常會出現突發性的暴漲,一般在進行活動的時候,流量可能是平時的幾十倍。2016年7月11日,PAPI醬的一次直播帶來了超過2000W用戶的訪問,這對于大多數的直播應用來說,服務器的成本都是難以承擔的。這也是為什么越來越多的直播應用開始尋求云服務器的支持,目前的云服務商有騰訊云,阿里云,百度云,金山云等,彼此之間在硬件上的類型差別越來越小。
因此直播應用在上線前需要對多樣化的用戶操作進行針對性的測試,注冊,聊天,禮物,支付等行為都需要進行不同接口的測試,NOW直播就是其中之一。
騰訊NOW直播是騰訊目前發展非常迅速的直播應用,獲得了通過QQ直接登錄直播界面的入口,可見其受重視程度,而NOW直播在一場線上活動中,需要對活動的所有接口進行壓力測試,提前暴露問題并解決,確保活動的順利實施。為此,NOW直播與騰訊WeTest服務器性能測試進行了合作,對應用的業務后臺進行了系統性的測試,對活動進行了一整套場景測試。(對于視頻流量、用戶交互等高頻率高帶寬的場景,也同樣可以使用WeTest服務器性能測試的的高級模式進行,本文不做展開,盡請期待后續干貨。)
一般來說,對于活動中的功能節點,測試過程中通常關注兩點:
單接口壓測,提前暴露核心模塊的問題
多接口架構問題,場景壓測盡量模擬真實用戶行為,使得壓測結果更有說服力
對于這次活動,NOW直播的思路也同樣是通過簡單的HTTP單接口和復雜的多接口場景壓測,通過壓測工具給后臺和客戶端APP增加壓力源,幫助發現問題。
單接口壓測——步步為營,逐漸迭代
單接口壓測的原理很簡單,就是不斷的對某個功能接口不斷加壓,直到發現出現問題的那個極限就可以,在騰訊WeTest服務器性能測試上,操作如下:
1)點擊壓測產品首頁中的快捷入口:HTTP直壓。模式選擇簡單模式,名稱和描述可以自己填寫。(圖中示例起始人數50人,每隔60秒增加50人,加到200人為上限)
2)新建一個客戶端請求,接口壓測包括讀寫接口,讀接口基本是GET請求,寫接口基本是POST請求。GET請求使用url請求參數,POST請求使用x-www-form-urlencoded方式傳遞參數,在這里NOW直播方法選擇GET,填寫想要測試的URL。
3)編輯一下測試模型,增加一個場景名,單接口測試只測試一個功能接口,因此模式選擇“單場景”,壓力百分比設置為100%。
通過這樣的壓測方式,不斷增加服務器壓力,直到找到瓶頸位置,騰訊WeTest為NOW直播實現了2W/s的并發量,滿足了NOW直播的并發需求。
多接口壓測——真實模擬,定位問題
多接口壓測的主要邏輯,就是通過構建不同的功能接口,模擬用戶的真實行為,從而幫助開發者定位接口問題。
NOW直播的測試方式是通過GET請求調用一個功能接口,通過這個功能接口隨機產生不同行為邏輯的機器人,模擬真實的QQ用戶,然后通過POST請求執行具體的業務行為,從而發現功能之間會產生的邏輯問題。
NOW直播測試團隊讀接口基本是GET請求,寫接口基本是POST請求。GET請求使用url請求參數,POST請求使用x-www-form-urlencoded方式傳遞參數。
在騰訊WeTest 服務器性能測試上,我們可以進行如下操作:
1)首先,通過GET請求,讀取一個用戶的“登陸態”,通過這個功能接口隨機產生不同行為邏輯的機器人,模擬真實的QQ用戶;然后通過POST請求依次執行具體的業務行為,從而發現功能之間產生的邏輯問題。
2)在測試場景中輸入場景名,NOW直播測試的是“登錄-進入房間-點贊”這樣三個操作,然后“模式”選擇“上下文”,點擊“壓測場景”,選擇調用不同的功能接口。
目前騰訊WeTest服務器性能測試支持同時接入8個場景,更多的場景可以更真實的模擬用戶的行為。
通過NOW直播與騰訊WeTest在服務器性能測試方面的合作可以看出,目前的直播應用非常注重兩塊的內容:一個是單接口的承載能力,一個是多接口的架構情況,對于開發人員來說,前者的問題是好解決的,通過平行擴容的方式就可以做到優化,但是后者的問題則需要在多個功能接口之間不斷定位問題,不斷嘗試新的壓力測試,才能找到那個存在的隱患。
基于NOW直播的需求,騰訊WeTest也提升了可同時調用的場景接口,從原來的4個增加到了8個,之后也會不斷的增加;并且也不斷的增加可以實現的并發數,為用戶提供更大的并發壓力和更真實的行為場景,節省了更多的測試成本。
做好這些,才能做出更好的直播應用。
騰訊WeTest運用了沉淀十多年的內部實踐經驗總結,通過基于真實業務場景和用戶行為進行壓力測試,幫助游戲開發者發現服務器端的性能瓶頸,進行針對性的性能調優,降低服務器采購和維護成本,提高用戶留存和轉化率。
以上就是如何進行Now直播應用的后臺服務器性能測試的實踐,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。