前言
對(duì)大量使用CDN產(chǎn)品甚至依賴(lài)的直播平臺(tái)而言骤竹,CDN的質(zhì)量問(wèn)題,一直是一個(gè)長(zhǎng)期讓人頭疼的問(wèn)題愚隧。而質(zhì)量不好,勢(shì)必影響業(yè)務(wù)發(fā)展的穩(wěn)定性锻全。
CDN的質(zhì)量問(wèn)題表現(xiàn)有以下幾點(diǎn):
一狂塘、平臺(tái)方“不知道有問(wèn)題”:同時(shí)存在的直播間太多,覆蓋的用戶(hù)更多鳄厌,不知道好不好荞胡,也不知道哪里不好。
二了嚎、平臺(tái)方“被知道有問(wèn)題”:不能第一時(shí)間主動(dòng)感知到質(zhì)量變化泪漂,直到彈幕里被帶了節(jié)奏才被動(dòng)知曉,為時(shí)已晚歪泳。
三萝勤、平臺(tái)方“不知道問(wèn)題在哪里”:有N條流,分發(fā)給N個(gè)節(jié)點(diǎn)呐伞,又分發(fā)給N個(gè)用戶(hù)敌卓,業(yè)務(wù)非常復(fù)雜,一旦有質(zhì)量波動(dòng)伶氢,不能第一時(shí)間定位原因所在趟径。
四、CDN廠(chǎng)商“也不知道有問(wèn)題”:CDN廠(chǎng)商更關(guān)注的是整個(gè)資源盤(pán)的質(zhì)量癣防,顆粒比較粗蜗巧,加上沒(méi)有端做數(shù)據(jù)支撐,往往比平臺(tái)方更后知后覺(jué)劣砍。
綜上所述惧蛹,本質(zhì)原因是數(shù)據(jù)的量級(jí)和業(yè)務(wù)的復(fù)雜度不匹配,要用極少的數(shù)據(jù)來(lái)監(jiān)控復(fù)雜的業(yè)務(wù)刑枝,本身不現(xiàn)實(shí)香嗓。而業(yè)務(wù)的復(fù)雜性是客觀存在,也是業(yè)務(wù)本身所需装畅,不可更改靠娱,那就需要通過(guò)增加數(shù)據(jù)的量級(jí)來(lái)做匹配,
要提升數(shù)據(jù)的量級(jí)掠兄,并完成匹配像云,必須具備2個(gè)條件:負(fù)責(zé)數(shù)據(jù)采集的端和負(fù)責(zé)數(shù)據(jù)分析的模型锌雀。
數(shù)據(jù)采集
服務(wù)端的數(shù)據(jù)采集,CDN廠(chǎng)商就能做到迅诬。但光有服務(wù)端的數(shù)據(jù)腋逆,就分析而言,是很單薄的侈贷,有點(diǎn)居廟堂之高惩歉,未知江湖之遠(yuǎn)的味道。
因此俏蛮,地處“江湖之遠(yuǎn)”的客戶(hù)端數(shù)據(jù)就顯得尤為重要撑蚌,是整個(gè)數(shù)據(jù)集合中的靈魂。只有端的數(shù)據(jù)才是最真實(shí)最正確的搏屑,其它模擬檢測(cè)產(chǎn)品的數(shù)據(jù)再仿真也只是參考争涌,代表的僅僅是可能,而非確鑿辣恋。
而客戶(hù)端的真實(shí)數(shù)據(jù)亮垫,是CDN廠(chǎng)商所鞭長(zhǎng)莫及的,只有平臺(tái)自己來(lái)采集抑党。
那么包警,具體要采集什么數(shù)據(jù)呢?
主要采集(即客戶(hù)端主動(dòng)上報(bào))在線(xiàn)人次和卡頓事件底靠,細(xì)分的數(shù)據(jù)有以下
1 時(shí)間點(diǎn):精確到秒害晦,一般卡頓事件就會(huì)有。
2 用戶(hù)IP:上報(bào)時(shí)服務(wù)端從底層可以獲取暑中,所以不同刻意加上(其實(shí)客戶(hù)端也不知道自己的公網(wǎng)IP)
3 流名:即代表用戶(hù)所處的直播間壹瘟,流名應(yīng)該全平臺(tái)唯一。
4 端類(lèi)型:因?yàn)椴煌亩琐猓匦圆煌竟欤?xì)分開(kāi)來(lái),還是有助于深入分析的雕凹。主要分flash殴俱、H5(PC)、iphone枚抵、Android线欲、Ipad、Android_Pad汽摹、Android_TV李丰、H5(moblie),事先確認(rèn)好定義逼泣。
5 服務(wù)器節(jié)點(diǎn)IP:一般首次調(diào)度使用IP調(diào)度方式即可獲取趴泌,若使用了域名調(diào)度舟舒,就獲取不到,只能忽略嗜憔。所以秃励,建議使用IP調(diào)度方式。
6 CDN:當(dāng)前服務(wù)的CDN廠(chǎng)商編號(hào)吉捶。
7 協(xié)議類(lèi)型:目前有rtmp莺治、HDL、HLS這3種主流流媒體協(xié)議帚稠。就直播而言,使用比重較大的是rtmp和HDL床佳。后來(lái)有在上面新增一些P2P的技術(shù)滋早,可以理解為新的一種協(xié)議,作為獨(dú)立的考察項(xiàng)砌们。
8 行為ID:表示用戶(hù)本次拉流行為的ID杆麸,這個(gè)是很重要的值。比如用戶(hù)可能會(huì)在一段時(shí)間內(nèi)多次拉流浪感,就會(huì)生成多個(gè)行為ID昔头,也會(huì)產(chǎn)生多個(gè)卡頓事件,用行為ID影兽,就區(qū)別不同的行為揭斧,以及卡頓分屬哪次行為。否則不同的卡頓事件峻堰,除了時(shí)間點(diǎn)不同外讹开,以上2-7點(diǎn)的數(shù)據(jù)都可能相同,就無(wú)法做進(jìn)一步區(qū)分了捐名。行為ID的生成算法要求客戶(hù)端隨機(jī)生成旦万,且相當(dāng)長(zhǎng)的時(shí)間(如24小時(shí))內(nèi)不重復(fù)。
一般建議要記錄每一次的卡頓事件镶蹋,再加上帶著這些多維度的實(shí)時(shí)參數(shù)成艘,數(shù)據(jù)量是應(yīng)該是足夠了的,接下來(lái)就要看怎么做數(shù)據(jù)分析了贺归。
數(shù)據(jù)分析
數(shù)據(jù)分析比較看重模型淆两。不同的業(yè)務(wù)要求,會(huì)采用不同的模型牧氮。
本文作者基于實(shí)操的經(jīng)驗(yàn)琼腔,建議采用的分析模式可以是流-節(jié)點(diǎn)-用戶(hù)模型。
什么意思呢踱葛?即先觀察流的質(zhì)量丹莲,再觀察節(jié)點(diǎn)質(zhì)量光坝,最后觀察用戶(hù)本地的網(wǎng)絡(luò)質(zhì)量。
為什么要按這個(gè)順序分析呢甥材?因?yàn)閺臉I(yè)務(wù)特性來(lái)看盯另,流的質(zhì)量影響權(quán)重是最大的,節(jié)點(diǎn)其次洲赵,最后才是用戶(hù)鸳惯。
比如一個(gè)流本身質(zhì)量變差了,勢(shì)必當(dāng)時(shí)看這個(gè)流的用戶(hù)都會(huì)受影響叠萍,無(wú)一幸免芝发,也無(wú)從逃避;但如果某一節(jié)點(diǎn)質(zhì)量變差苛谷,從流的視角看辅鲸,只是部分用戶(hù)被影響,不太容易帶節(jié)奏腹殿,且可以通過(guò)換節(jié)點(diǎn)緩解独悴;而用戶(hù)本地的網(wǎng)絡(luò)質(zhì)量出問(wèn)題,影響面最小锣尉,很可能一個(gè)直播間里就他一個(gè)人有影響刻炒,處理起來(lái)也比較簡(jiǎn)單。
這里把分析的流程圖列出來(lái)
其中流卡頓超標(biāo)的原因分析自沧、節(jié)點(diǎn)卡頓超標(biāo)的原因分析以及用戶(hù)卡頓原因分析坟奥,涉及到的細(xì)節(jié)很多,這邊就給出一個(gè)思維框架供參考拇厢,不做細(xì)解筏勒。
其它因素
以上說(shuō)的都是比較簡(jiǎn)單和純粹的模型,但其實(shí)整個(gè)數(shù)據(jù)采集和數(shù)據(jù)分析旺嬉,還需要考慮到其它因素管行,比如:
1 多CDN的架構(gòu)。
一般都會(huì)采用多家CDN邪媳。有些平臺(tái)采用的是直推一家CDN廠(chǎng)商捐顷,其它CDN廠(chǎng)商會(huì)去這一家拉流;也有的平臺(tái)采用的是直推一家CDN廠(chǎng)商雨效,由該廠(chǎng)商轉(zhuǎn)推給其它CDN廠(chǎng)商迅涮。不同的架構(gòu),對(duì)數(shù)據(jù)的分析會(huì)有不同徽龟。
2 轉(zhuǎn)碼叮姑。
轉(zhuǎn)碼,即多碼率,也是現(xiàn)在直播平臺(tái)的功能標(biāo)配传透,遇到原始碼率高的流耘沼,為了適應(yīng)不同帶寬的用戶(hù)需求,會(huì)通過(guò)云轉(zhuǎn)碼的方式轉(zhuǎn)出超清朱盐、高清和標(biāo)清等不同清晰度(背后的碼率參數(shù)各自定義)群嗤。那么分析流質(zhì)量的時(shí)候,就要同時(shí)考慮轉(zhuǎn)碼流的質(zhì)量兵琳,若轉(zhuǎn)碼流質(zhì)量不好狂秘,但源流好的,那說(shuō)明是轉(zhuǎn)碼過(guò)程出問(wèn)題了躯肌;又若轉(zhuǎn)碼流和源流質(zhì)量都不好者春,那很可能是源流問(wèn)題。
3 多出口清女。
中國(guó)的網(wǎng)絡(luò)情況很復(fù)雜碧查,很多小運(yùn)營(yíng)商的存在,導(dǎo)致很多用戶(hù)的出口表現(xiàn)為電信校仑、聯(lián)通,其實(shí)并非電信传惠、聯(lián)通用戶(hù)迄沫,容易在調(diào)度和定位問(wèn)題上混淆視聽(tīng)。而且經(jīng)常是一會(huì)電信的出口IP卦方,一會(huì)又小運(yùn)營(yíng)商自己的出口IP羊瘩,走位十分飄忽。為了盡可能定位用戶(hù)真實(shí)的運(yùn)營(yíng)商歸屬盼砍,建議可以多獲取和記錄幾次用戶(hù)IP尘吗,按照一定規(guī)則,來(lái)準(zhǔn)確定位浇坐。
最后的話(huà)
CDN的質(zhì)量檢測(cè)是一個(gè)復(fù)雜而需要耐心的工程睬捶。
首先,要求相關(guān)人員近刘,不僅要了解CDN的基本原理擒贸,并且要吃透平臺(tái)的業(yè)務(wù)特色。
其次觉渴,要制定適合自己平臺(tái)的分析模型介劫,特別是各個(gè)報(bào)警閾值的設(shè)定。
最后案淋,有了數(shù)據(jù)采集和數(shù)據(jù)分析座韵,才能做之后適合自己的調(diào)度工作。
調(diào)度工作踢京,又是一個(gè)很復(fù)雜的話(huà)題誉碴,就不在本文展開(kāi)宦棺,有機(jī)會(huì)再講。