摘要:線上服務(wù)的有效監(jiān)控和數(shù)據(jù)收集,一直是后端服務(wù)離不開的話題。在這個(gè)大數(shù)據(jù)時(shí)代,有了數(shù)據(jù)卻不做事情,等同于浪費(fèi)。而南京移動的用戶量較大,也說明南京地區(qū)應(yīng)該增設(shè)服務(wù)點(diǎn)。
線上服務(wù)的有效監(jiān)控和數(shù)據(jù)收集,一直是后端服務(wù)離不開的話題。直播作為一種經(jīng)典的分布式系統(tǒng),監(jiān)控以及數(shù)據(jù)收集更是必不可少的工作。如何對海量的服務(wù)集群有效的監(jiān)控和保活,又如何抓取集群中的碎片數(shù)據(jù)中來優(yōu)化服務(wù)?網(wǎng)易云信音視頻研發(fā)工程師將和大家共同探討。
推薦閱讀
《視頻私有云實(shí)戰(zhàn):基于 Docker 構(gòu)建點(diǎn)播私有云平臺》
作為分布式集群,物理層上的最小單位自然是機(jī)器。對于一臺機(jī)器而言,常規(guī)性能指標(biāo)自然就是 CPU、內(nèi)存、網(wǎng)卡的使用情況。這些性能有很多方式去獲取,而視頻云采用的是網(wǎng)易的哨兵系統(tǒng)。哨兵系統(tǒng)是網(wǎng)易的監(jiān)控系統(tǒng),提供了非常詳細(xì)和即時(shí)的性能指標(biāo)。
借由哨兵這個(gè)強(qiáng)大的輪子,我們能非常方便的在機(jī)器級別上,做出有效的監(jiān)控。例如當(dāng)網(wǎng)卡流量或者 CPU 異常的時(shí)候,可以快速的報(bào)警采取處理。當(dāng)然,不光光可以監(jiān)控機(jī)器是否能正常運(yùn)行,也可以監(jiān)控是否被惡意攻擊,這個(gè)暫且不談。
當(dāng)然,只有機(jī)器級的數(shù)據(jù),是遠(yuǎn)遠(yuǎn)不夠的。俗話說,不與業(yè)務(wù)貼合的數(shù)據(jù),不是好數(shù)據(jù)。作為直播 CDN 服務(wù),最常規(guī)的參數(shù),自然是音視頻碼率和延遲。
細(xì)心的看官們可能發(fā)現(xiàn)了幾個(gè)比較特殊的統(tǒng)計(jì)。
為什么統(tǒng)計(jì)了總碼率也統(tǒng)計(jì)了音視頻多帶帶的碼率?
這是因?yàn)樵谡鎸?shí)的場景中,總碼率并不一定能還原出我們需要的場景,有很多情況會需要多帶帶的分析音視頻碼率,例如用戶主動關(guān)閉了視頻輸出或者機(jī)器采樣性能不足導(dǎo)致的視頻卡頓,這個(gè)時(shí)候只需要配合幀率的統(tǒng)計(jì),就可以快速還原場景。當(dāng)然,視頻碼率本身也不是一個(gè)固定的數(shù)值。視頻云也針對弱網(wǎng)提供QoS(即可變碼率)的功能。
推送延遲 push_delay 是什么?
推送延遲,是一個(gè)衡量 C/S 之間網(wǎng)絡(luò)情況的參數(shù)。當(dāng)這個(gè)參數(shù)發(fā)生波動的時(shí)候,則說明 C 端的包到達(dá) S 的時(shí)間比預(yù)計(jì)要長。能夠反映出網(wǎng)絡(luò)的抖動情況。如果計(jì)算這個(gè)數(shù)值呢?簡單來說,是使用了 RTMP 包頭部的時(shí)間戳。如果非要用一個(gè)公式解釋一下,我覺得應(yīng)該是:
Delay=abs( (當(dāng)前 RTMP 包的到達(dá)時(shí)間-上個(gè) RTMP 包的到達(dá)時(shí)間) – (當(dāng)前 RTMP 包的時(shí)間戳–上個(gè) RTMP 包的時(shí)間戳) )
計(jì)算每個(gè)包到達(dá)服務(wù)器所消耗時(shí)間的差異值,用于代表網(wǎng)絡(luò)的抖動。當(dāng)然,還需要做其他很多事情,例如加權(quán)和jitter算法來減少誤差和避免。
為什么還有 send_kbps?
其實(shí)這也挺好理解,因?yàn)?CDN 本身是分布式系統(tǒng),在節(jié)點(diǎn)和節(jié)點(diǎn)間需要做路徑選擇,然后從節(jié)點(diǎn)到節(jié)點(diǎn)傳輸,從而實(shí)現(xiàn)加速。Send_kbps 其實(shí)就是前一個(gè)節(jié)點(diǎn)向后一個(gè)節(jié)點(diǎn)的發(fā)送碼率。那么這就涉及到了一個(gè)問題,如果去 trace 某一條流的數(shù)據(jù)呢?對于每一條流,我們會給予一個(gè)唯一的標(biāo)記,在節(jié)點(diǎn)間傳遞的時(shí)候,我們會給流添加一個(gè)自增的標(biāo)記 Hops。
通過這個(gè)標(biāo)記,可以精準(zhǔn)的找到這條流在節(jié)點(diǎn)件的走向,從而把各個(gè)節(jié)點(diǎn)的數(shù)據(jù)聚合在一起。其他,我們還會抓取一些類似源 IP,用戶設(shè)備等客戶端的信息。這些信息能幫忙我們走進(jìn)大數(shù)據(jù)時(shí)代。
分布式系統(tǒng)中,每一個(gè)節(jié)點(diǎn)都會產(chǎn)生大量的統(tǒng)計(jì)和性能數(shù)據(jù)。所以在視頻云,有一個(gè)完整的統(tǒng)計(jì)架構(gòu)來作出支持。從最前端的數(shù)據(jù)采集、傳輸,到匯總,然后到計(jì)算集群,最后輸出。每一個(gè)服務(wù)都各司其職。讓我們來看看整體架構(gòu)。
對于每一個(gè)區(qū)域,會有一個(gè)數(shù)據(jù)匯聚的服務(wù)器,負(fù)責(zé)從流媒體服務(wù)器收集數(shù)據(jù)。最初的元數(shù)據(jù),經(jīng)過數(shù)據(jù)匯聚服務(wù)器匯總、過濾和壓縮以后。統(tǒng)一上報(bào)到中心集群中的統(tǒng)計(jì)服務(wù)器。統(tǒng)計(jì)服務(wù)器會將所有的統(tǒng)計(jì)數(shù)據(jù),逐一落庫,儲存在數(shù)據(jù)倉庫中。其余的數(shù)據(jù)計(jì)算集群,會從數(shù)據(jù)倉庫中定時(shí)進(jìn)行讀取計(jì)算。具體的計(jì)算間隔,會根據(jù)業(yè)務(wù)類型不同而不同。例如運(yùn)維平臺會主要讀取一些機(jī)器級別的數(shù)據(jù),進(jìn)行分析和報(bào)警。大數(shù)據(jù)計(jì)算集群則會對數(shù)據(jù)進(jìn)行計(jì)算,得出優(yōu)化方向,此處我們稍后再聊。業(yè)務(wù)數(shù)據(jù)展示平臺則是會實(shí)時(shí)的輸出數(shù)據(jù)(例如碼率和延遲),用于提供給用戶和技術(shù)支持查詢。當(dāng)然,還有其他各種各樣的數(shù)據(jù)處理服務(wù),這里就不再一一介紹。
最后,我們聊一聊數(shù)據(jù)。在這個(gè)大數(shù)據(jù)時(shí)代,有了數(shù)據(jù)卻不做事情,等同于浪費(fèi)。那么,有了這些數(shù)據(jù)以后,我們做了什么事情呢?當(dāng)然,最顯而易見的,就是調(diào)整調(diào)度策略,增設(shè)布點(diǎn)。例如,上圖的大數(shù)據(jù)的運(yùn)算結(jié)果,南京電信的網(wǎng)絡(luò)權(quán)重比較差,這就說明南京電信地區(qū)需要進(jìn)行排查。而南京移動的用戶量較大,也說明南京地區(qū)應(yīng)該增設(shè)服務(wù)點(diǎn)。
此外,數(shù)據(jù)和性能指標(biāo)的上報(bào),也會被用于均衡負(fù)載調(diào)度。例如某一個(gè)節(jié)點(diǎn)壓力較大的時(shí)候,或者性能不穩(wěn)定的時(shí)候,這個(gè)節(jié)點(diǎn)的調(diào)度優(yōu)先級就會被降低(即不太會被優(yōu)先分配給用戶)。
以上就是我對于直播 CDN 服務(wù)監(jiān)控的一些看法,但是直播 CDN 服務(wù)監(jiān)控和數(shù)據(jù)收集是一個(gè)值得無止境討論和優(yōu)化的事情,歡迎大家留言與我探討。
隨著即時(shí)通訊以及音頻處理和壓縮技術(shù)的不斷發(fā)展,效果更好、適用范圍更廣、性能更高的算法和新的技術(shù)必將不斷涌現(xiàn),如果你有好的技術(shù)或者分享,歡迎關(guān)注網(wǎng)易云信官方博客和 GitHub:
關(guān)注更多技術(shù)干貨內(nèi)容:網(wǎng)易云信博客
歡迎關(guān)注網(wǎng)易云信 GitHub
歡迎關(guān)注網(wǎng)易云信官網(wǎng)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/33805.html
摘要:線上服務(wù)的有效監(jiān)控和數(shù)據(jù)收集,一直是后端服務(wù)離不開的話題。在這個(gè)大數(shù)據(jù)時(shí)代,有了數(shù)據(jù)卻不做事情,等同于浪費(fèi)。而南京移動的用戶量較大,也說明南京地區(qū)應(yīng)該增設(shè)服務(wù)點(diǎn)。 線上服務(wù)的有效監(jiān)控和數(shù)據(jù)收集,一直是后端服務(wù)離不開的話題。直播作為一種經(jīng)典的分布式系統(tǒng),監(jiān)控以及數(shù)據(jù)收集更是必不可少的工作。如何對海量的服務(wù)集群有效的監(jiān)控和保活,又如何抓取集群中的碎片數(shù)據(jù)中來優(yōu)化服務(wù)?網(wǎng)易云信音視頻研發(fā)工程...
摘要:線上服務(wù)的有效監(jiān)控和數(shù)據(jù)收集,一直是后端服務(wù)離不開的話題。性能指標(biāo)與業(yè)務(wù)融合當(dāng)然,只有機(jī)器級的數(shù)據(jù),是遠(yuǎn)遠(yuǎn)不夠的。在這個(gè)大數(shù)據(jù)時(shí)代,有了數(shù)據(jù)卻不做事情,等同于浪費(fèi)。而南京移動的用戶量較大,也說明南京地區(qū)應(yīng)該增設(shè)服務(wù)點(diǎn)。 線上服務(wù)的有效監(jiān)控和數(shù)據(jù)收集,一直是后端服務(wù)離不開的話題。直播 CDN 作為一種經(jīng)典的分布式系統(tǒng),監(jiān)控以及數(shù)據(jù)收集更是必不可少的工作。如何對海量的服務(wù)集群有效的監(jiān)控和保...
摘要:線上服務(wù)的有效監(jiān)控和數(shù)據(jù)收集,一直是后端服務(wù)離不開的話題。性能指標(biāo)與業(yè)務(wù)融合當(dāng)然,只有機(jī)器級的數(shù)據(jù),是遠(yuǎn)遠(yuǎn)不夠的。在這個(gè)大數(shù)據(jù)時(shí)代,有了數(shù)據(jù)卻不做事情,等同于浪費(fèi)。而南京移動的用戶量較大,也說明南京地區(qū)應(yīng)該增設(shè)服務(wù)點(diǎn)。 線上服務(wù)的有效監(jiān)控和數(shù)據(jù)收集,一直是后端服務(wù)離不開的話題。直播 CDN 作為一種經(jīng)典的分布式系統(tǒng),監(jiān)控以及數(shù)據(jù)收集更是必不可少的工作。如何對海量的服務(wù)集群有效的監(jiān)控和保...
閱讀 713·2023-04-25 19:43
閱讀 3907·2021-11-30 14:52
閱讀 3784·2021-11-30 14:52
閱讀 3852·2021-11-29 11:00
閱讀 3783·2021-11-29 11:00
閱讀 3869·2021-11-29 11:00
閱讀 3557·2021-11-29 11:00
閱讀 6105·2021-11-29 11:00