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