雷德剛,林 舸,唐新宇,黃曉鋒,黃承海
廣西廣播電視信息網(wǎng)絡(luò)股份有限公司,廣西南寧 530028
廣電互動電視CDN系統(tǒng)快速轉(zhuǎn)存推流技術(shù)
雷德剛,林 舸,唐新宇,黃曉鋒,黃承海
廣西廣播電視信息網(wǎng)絡(luò)股份有限公司,廣西南寧 530028
利用無差錯TCP傳輸協(xié)議縮短視頻推流服務(wù)器到與IPQAM間UDP協(xié)議的傳輸距離,并結(jié)合內(nèi)存快速轉(zhuǎn)存服務(wù)器,設(shè)計一種新型的廣電互動電視CDN架構(gòu)以及視頻推流方式。本文闡述了設(shè)計的思路、架構(gòu)和轉(zhuǎn)存推流技術(shù)內(nèi)容。
IPQAMUDP協(xié)議;TCP協(xié)議;快速轉(zhuǎn)存;分片算法;回源
廣電網(wǎng)絡(luò)的互動點播系統(tǒng)由包括服務(wù)器、傳輸網(wǎng)絡(luò)、IPQAM、用戶接入網(wǎng)等多個環(huán)節(jié)組成,哪個環(huán)節(jié)出現(xiàn)故障都會給用戶播放造成不同程度的影響,其中在服務(wù)器與IPQAM之間的視頻數(shù)據(jù)傳輸是最長的一個環(huán)節(jié),這段距離的傳輸協(xié)議使用UDP協(xié)議,在傳輸過程中如有超過IPQAM所能承受范圍的網(wǎng)絡(luò)延時或者丟包現(xiàn)象,將會在用戶終端上出現(xiàn)點播馬賽克、卡頓等現(xiàn)象,極大影響用戶的體驗。
為了解決現(xiàn)在實際推流環(huán)境下UDP協(xié)議長距離傳輸易出現(xiàn)的網(wǎng)絡(luò)抖動問題,隔絕系統(tǒng)和網(wǎng)絡(luò)上的干擾,通過在CDN的邊緣節(jié)點布置大內(nèi)存且無存儲硬盤的快速轉(zhuǎn)存推流服務(wù)器,采用內(nèi)存作為中轉(zhuǎn)緩存,將快速轉(zhuǎn)存推流服務(wù)器前置到與分前端IPQAM同一交換機(jī)網(wǎng)絡(luò)內(nèi),使得快速轉(zhuǎn)存推流服務(wù)器與上級服務(wù)器的內(nèi)容傳輸采用TCP可靠傳輸協(xié)議,轉(zhuǎn)存后向IPQAM以UDP協(xié)議繼續(xù)推流,這樣就大大縮短不可靠協(xié)議傳輸?shù)木嚯x,解決網(wǎng)絡(luò)抖動引起的各種問題。形成一套視頻內(nèi)容高速可靠傳輸、推流質(zhì)量明顯改善的快速轉(zhuǎn)存推流系統(tǒng)。
1)根據(jù)現(xiàn)狀進(jìn)行改造,設(shè)計在邊緣節(jié)點推流服務(wù)器與IPQAM之間,增加快速轉(zhuǎn)存推流設(shè)備,同時將設(shè)備前置到分前端離IPQAM最近的點,通過交換機(jī)進(jìn)行連接。
2)設(shè)計快速轉(zhuǎn)存推流服務(wù)器采用高IO讀寫內(nèi)存作為中轉(zhuǎn)緩存,不配置存儲內(nèi)容的硬盤,性能高,方便維護(hù)。
3)開發(fā)內(nèi)存轉(zhuǎn)存推流技術(shù),核心是使用內(nèi)存作為數(shù)據(jù)緩存設(shè)備,來進(jìn)行快速的數(shù)據(jù)讀取和發(fā)送。通過優(yōu)化內(nèi)存緩存算法,提高緩存的利用率,改善推流質(zhì)量和提高推流輸出能力。
2.1 架構(gòu)改造
2.1.1 邊緣城市節(jié)點推流網(wǎng)絡(luò)現(xiàn)狀
架構(gòu)改造前,邊緣帶存儲的推流服務(wù)器放置在各地級市內(nèi)中心機(jī)房,直接承載用戶的IPQAM分布式布放在各分前端(地級市下屬城區(qū)、縣、鎮(zhèn))機(jī)房內(nèi),響應(yīng)到用戶點播請求后,推流服務(wù)器推送視頻TS流給IPQAM設(shè)備,由IPQAM轉(zhuǎn)成RF信號供給用戶機(jī)頂盒進(jìn)行接收和觀看。此種傳輸模式下,市中心機(jī)房與分前端的IPQAM間傳輸采用UDP協(xié)議,容易受到市中心機(jī)房到分前端的網(wǎng)絡(luò)環(huán)境距離長、節(jié)點多的影響,傳輸穩(wěn)定性無法完全保證,在出現(xiàn)網(wǎng)絡(luò)抖動及延時的情況下,用戶的收視體驗較差。
2.1.2 改造后架構(gòu)
設(shè)計在邊緣推流服務(wù)器與分前端IPQAM間增加一層快速轉(zhuǎn)存推流設(shè)備,盡可能多地從上一級推流服務(wù)器回源拉取熱門視頻內(nèi)容,該設(shè)備與IPQAM一起放置在同一分前端機(jī)房內(nèi)與交換機(jī)直連,長距離的向上回源視頻內(nèi)容行為使用TCP協(xié)議(可靠協(xié)議),同局域網(wǎng)內(nèi)的向下推流采用UDP協(xié)議,以此減少網(wǎng)絡(luò)抖動和延遲的影響。
根據(jù)轉(zhuǎn)存算法對CPU及內(nèi)存容量的需求,通過對不同硬件配置的服務(wù)器進(jìn)行測算,得出最佳的硬件配置組合。
3.1 內(nèi)存轉(zhuǎn)存推流原理
快速轉(zhuǎn)存服務(wù)器首先向上級推流服務(wù)器請求視頻數(shù)據(jù)緩存在服務(wù)器內(nèi)存中,若有用戶請求則高速讀取內(nèi)存中數(shù)據(jù)提供給外部請求,實現(xiàn)快遞轉(zhuǎn)存推流功能。
3.2 轉(zhuǎn)存介質(zhì)
與傳統(tǒng)存儲介質(zhì)硬盤對比,內(nèi)存讀寫速度快,數(shù)據(jù)傳輸時延低,可有效改善推流輸出質(zhì)量,另外其故障率低的特點。
3.3 物理內(nèi)存分配設(shè)計
推流服務(wù)器基礎(chǔ)容量:推流程序未連接用戶時消耗內(nèi)存550MB,為使正常工作,預(yù)留1GB內(nèi)存。
并發(fā)內(nèi)存占用:是指每個連接上媒體服務(wù)器所消耗的單個連接內(nèi)存開銷的總和。推流程序占用11.3%的內(nèi)存,該服務(wù)器內(nèi)存為64GB,則程序占用7405MB內(nèi)存。此時推流并發(fā)為217個,則每平均每個連接消耗34MB內(nèi)存,根據(jù)實際測試數(shù)據(jù),純內(nèi)存或固態(tài)盤服務(wù)器可以支撐2000并發(fā),所有我們設(shè)計每臺轉(zhuǎn)存服務(wù)器的并發(fā)數(shù)為2000,則需要消耗34MB×2000=68GB的內(nèi)存。
操作系統(tǒng)預(yù)留容量:為使正常工作,預(yù)留2GB內(nèi)存。
熱點分片緩存:在推流的同時,會將視頻內(nèi)容分片存儲在內(nèi)存磁盤上。若有多個用戶同時訪問相同視頻內(nèi)容,則媒體服務(wù)器將一直將直接使用內(nèi)存磁盤上的視頻分片數(shù)據(jù),并且這些數(shù)據(jù)分片保持為興奮狀態(tài),不進(jìn)行刪除。
整個服務(wù)器內(nèi)存分配如下設(shè)計:操作系統(tǒng)預(yù)留:2GB
推流服務(wù)器基礎(chǔ):1GB
并發(fā)占用內(nèi)存:34M×2000=68GB熱點分片緩存:64-128GB
3.4 快速轉(zhuǎn)存服務(wù)器選型
3.4.1 快速轉(zhuǎn)存服務(wù)器硬件配置
單臺快速轉(zhuǎn)存服務(wù)器使用雙至強(qiáng)1.70GHz的CPU和192G內(nèi)存情況下,CPU使用率為75%左右;推流輸出帶寬達(dá)到7.5Gbps時,機(jī)頂盒視頻播穩(wěn)定、畫面穩(wěn)定,超過這個數(shù)值將出現(xiàn)收視馬賽克現(xiàn)象,測試結(jié)果表面快速轉(zhuǎn)存的算法在192G以上內(nèi)存空間支撐時表現(xiàn)出最優(yōu)的推流輸出能力,為了費效比的最優(yōu),建議采用以下基本配置。
CPU配置:2×Intel(R) Xeon(R) CPU E5-2609 v4 @ 1.70GHz
內(nèi)存配置:6×32GB
網(wǎng)卡配置:4×1GB 網(wǎng)絡(luò)子卡、2×10GB 網(wǎng)絡(luò)子卡
3.4.2 成本分析
四級CDN架構(gòu)與三級CDN架構(gòu)對比,雖然需多投入快速轉(zhuǎn)存推流設(shè)備,但實際換算推流流量每Gbps輸出硬件成本為1.85萬元,低于原架構(gòu)的2.51萬元,加上只配置內(nèi)存無硬盤的服務(wù)器對維護(hù)要求不高,兩者綜合,經(jīng)濟(jì)效益十分突出。
4.1 轉(zhuǎn)存方式
分片算法采用定長分片的方法,將媒體文件分割成大小一樣的片段,先系統(tǒng)中采用8M一個分片。采用該方法,能簡單高效的定位用戶的請求、響應(yīng)用戶拖動等操作,而且在進(jìn)行分片熱點計算的時候,能快速定位到每個分片。
分片0(8M) 分片1(8M) 分片2(8M) 分片3(8M) 分片4(8M)
4.2 緩存算法
熱點緩存算法能夠計算出熱點分片,通過緩存共享機(jī)制,提高用戶請求緩存命中率,可減少實時回源量,提升推流能力。具體算法如下。
4.2.1 熱點算法
使用分片訪問頻率來作為分片熱點的計算方法,訪問頻率越高則認(rèn)為該分片熱度越大,即后續(xù)被訪問的機(jī)率就越大。故在做熱點計算的時候,不能完全將每個分片完全分離開,各自獨立計算熱度,而應(yīng)該考慮其所處的位置,當(dāng)前被訪問的分片及其所在視頻觀看的熱度。
4.2.2 預(yù)讀算法
當(dāng)用戶在訪問分片n的時候,分片n+1將會有很大機(jī)率被訪問,增加一個預(yù)讀機(jī)制,將分片n+1進(jìn)行預(yù)讀緩存,并且將分片n+1的熱度直接配置為1,即進(jìn)行熱點分片預(yù)寫入。
4.2.3 更新算法
在進(jìn)行熱點文件替換的時候,按照熱度值從小到大進(jìn)行清理,即緩存熱度值高的分片數(shù)據(jù),另外為了防止熱點分片被頻繁換出,需要記錄每個分片的緩存時間,并且為每個分片配置一個保護(hù)時長,即在該時長內(nèi),熱點分片不會被換出。
通過互動點播CDN架構(gòu)的改造和快速轉(zhuǎn)存技術(shù)的開發(fā)和測試,實現(xiàn)了使用TCP協(xié)議替代UDP協(xié)議進(jìn)行長距離傳輸視頻流,解決了網(wǎng)絡(luò)抖動、延時等因素引起的各種用戶收視體驗不佳問題,同時使用分片式內(nèi)存存儲轉(zhuǎn)發(fā)機(jī)制提升了內(nèi)存空間使用率,并提高了回源推流和轉(zhuǎn)存推流的帶寬輸出能力,通過成本核算,每Gbps推流流量成本得到較大的降低,最終可使快速轉(zhuǎn)存推流技術(shù)得以良好的應(yīng)用。
[1]W.Richard Stevens.TCP/IP詳解卷1:協(xié)議[M].北京:機(jī)械工業(yè)出版社,2016:107-269.
[2]梁潔,陳戈,等.內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)關(guān)鍵技術(shù)、架構(gòu)與應(yīng)用[M].北京:人民郵電出版社,2013:356-391.
TP3
A
1674-6708(2017)192-0054-02
雷德剛,廣西廣播電視信息網(wǎng)絡(luò)股份有限公司。林舸,廣西廣播電視信息網(wǎng)絡(luò)股份有限公司。唐新宇,廣西廣播電視信息網(wǎng)絡(luò)股份有限公司。黃曉鋒,廣西廣播電視信息網(wǎng)絡(luò)股份有限公司。黃承海,廣西廣播電視信息網(wǎng)絡(luò)股份有限公司。