基于CDN的视频独立队列缓存策略研究

Posted 看网讲网

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于CDN的视频独立队列缓存策略研究相关的知识,希望对你有一定的参考价值。

 去年我公司内部高工聘任打分垫底,心情非常失落,桢姐患难时刻见真情,请我吃了好几顿自包的饺子试图平复我受伤的心灵,并在烧烤摊子/啤酒摊子/串串摊子/擀面皮摊子/麻将摊子等多个场合当着好多不认识的人面拿出她的聘任证高声教导我要好好学习,还时不时发个证书照片鼓励我要努力读书,动不动语言中夹杂着英语单词,并强迫我在私下叫她李高,她则称呼我贺工

为了称呼上的平等,我联合陈初工/刘初工认真学习,查经溯源,苦心写(bian)成了这篇论文,期待今年的评选

CDN技术将网站的内容发布到最接近用户的网络“边缘",使用户可以就近取得所需的内容。从技术上全面解决由于网络带宽小、用户访问量大等问题,提高用户访问网站的响应速度。视频业务是4G LTE网络和有线宽带网络的核心应用之一。传统的CDN视频缓存技术基于用户访问热点资源进行缓存,存在缓存盲区,为了提高视频节目在客户端播放的质量,必须以一定的机制对视频服务器缓存资源进行有效管理。

通过使用一种视频独立队列缓存管理策略,通过现网视频缓存服务器中应用验证策略的可用性。服务器在接受用户请求后为其建立一个独立缓存队列。当从视频硬盘上获取用户点播节目的数据块后,分配一个相当大小的缓存块,将数据存入,并将缓存块加入到相应缓存队列的尾部。在各个缓存队列的头部,有一个时钟控制的发送器,正常情况下以节目的平均位率将数据块发向网络,然后缓存块出队并被释放。如果缓存队列内的缓存块数目小于某个特定的阈值,则以低于平均位率的速率发送数据块;如果缓存块数目大于另一个特定的阈值,则以高于平均位率的速率发送数据块。这样,不但避免缓存的浪费,也减少了缓存上溢或者下溢的可能性。

视频缓存原理

视频点播服务器的工作是周期性的,在每一个服务周期中,服务器从视频硬盘上获取各用户点播节目的数据块,并存放到相应的缓存区中。数据块以一定的速率从缓存区向网络发送,从而保证节目在客户端的流畅播放。

独立队列缓存模型

缓存管理策略决定以静态还是动态方式分配缓存;不同的视频流是拥有各自独立的缓存还是共享缓存;同一视频流在不同周期获取的数据块是存放在不同的缓存区还是后来者覆盖先到者等等。由于缓存是视频服务器相当宝贵的资源,缓存管理策略的选择首先应当考虑节省缓存资源,从而保证支持更多用户的可用性。其次,尽可能避免缓存上溢或者下溢,防止出现异常。同时保证发送缓存数据时通过一定的平滑机制可以避免客户端的缓存溢出,提高播放的流畅性

模型如图1所示。每个进入缓存服务器的视频流都拥有一个独立的缓存队列,从视频硬盘上获取的视频数据块存放在动态分配的缓存块内,缓存块被加入到相应缓存队列的尾部。

基于CDN的视频独立队列缓存策略研究

算法分析

针对缓存盲区,通过优化缓存队列热点上报策略(建立独立队列、差异化设定上报周期和队列长度),优先将热点信息上报给视频调度服务器、触发缓存资源服务器回源

热点加权算法

基于CDN的视频独立队列缓存策略研究

优点:可灵活使用热点加权的方式增加热度

缺点:权重系数要根据实际情况实时调整,设定难度大;部分资源加权后,仍在缓存盲区

分队列热点统计算法

基于CDN的视频独立队列缓存策略研究

优点:针对每个队列,差异化设定上报周期和队列长度;CSS可设置队列号,缓存相应队列资源;灵活度高、缓存成功率高。

缺点:区分资源类型分别设置独立队列,占用视频缓存服务器数量多

热点视频独立队列缓存应用

方案制定

通过对现网视频缓存服务器队列上报信息进行自动统计分析

基于CDN的视频独立队列缓存策略研究

根据SAS队列上报信息的监控统计,正常情况下队列中最低点击数应该保持在20左右,而现网视频类热点队列中最低点击数都超过了100,表明有大量热点不能正常上报给缓存服务器回源,而是直接从源站获取资源,这导致了视频缓存流量大幅下降,缓存命中率不高。

根据现网视频缓存服务流量统计结果,腾讯、优酷、爱奇艺视频流量占比最高,为腾讯、优酷和爱奇艺这三个热门视频应用优先配置独立缓存队列,可以减少热点视频资源积压,从而增加缓存命中率,提升视频缓存服务流量。

应用方案

应用效果分析

为腾讯、优酷和爱奇艺这三个热门视频应用配置了独立上报队列后,统计腾讯、优酷、爱奇艺视频一周的队列上报信息


从腾讯、优酷、爱奇艺队列上报信息中可以看到,上报最低点击数均控制在20左右,表明绝大部分热点视频资源的流量通过了缓存

结束语

视频独立队列缓存管理算法用于视频点播服务器的缓存管理,该算法节省缓存资源,减少了缓存上溢或下溢的可能性,同时为客户端流畅地播放节目提供了必要条件。

以上是关于基于CDN的视频独立队列缓存策略研究的主要内容,如果未能解决你的问题,请参考以下文章

CDN概念和思路基本原理优势及应用领域和常见的缓存策略

前端开发之优秀的WEB缓存策略!

一次CDN源站负载高的问题排查及解决

基于Alluxio内存文件系统的缓存策略

网站的缓存控制策略最佳实践及注意事项

nginx 缓存策略实现方案