直播技术:从性能参数到业务大数据,浅谈直播CDN服务监控
线上服务的有效监控和数据收集,一直是后端服务离不开的话题。直播作为一种经典的分布式系统,监控以及数据收集更是必不可少的工作。如何对海量的服务集群有效的监控和保活,又如何抓取集群中的碎片数据中来优化服务?网易云信音视频研发工程师将和大家共同探讨。
推荐阅读
高清音质背后:网易云信音乐教学方案技术解密
机器站在巨人的肩膀上用着轮子
作为分布式集群,物理层上的最小单位自然是机器。对于一台机器而言,常规性能指标自然就是CPU、内存、网卡的使用情况。这些性能有很多方式去获取,而视频云采用的是网易的哨兵系统。哨兵系统是网易的监控系统,提供了非常详细和即时的性能指标。
借由哨兵这个强大的轮子,我们能非常方便的在机器级别上,做出有效的监控。例如当网卡流量或者cpu异常的时候,可以快速的报警采取处理。当然,不光光可以监控机器是否能正常运行,也可以监控是否被恶意攻击,这个暂且不谈。
性能指标与业务融合
当然,只有机器级的数据,是远远不够的。俗话说,不与业务贴合的数据,不是好数据。作为直播CDN服务,最常规的参数,自然是音视频码率和延迟。
细心的看官们可能发现了几个比较特殊的统计。
为什么统计了总码率也统计了音视频单独的码率?
这是因为在真实的场景中,总码率并不一定能还原出我们需要的场景,有很多情况会需要单独的分析音视频码率,例如用户主动关闭了视频输出或者机器采样性能不足导致的视频卡顿,这个时候只需要配合帧率的统计,就可以快速还原场景。当然,视频码率本身也不是一个固定的数值。视频云也针对弱网提供QoS(即可变码率)的功能。
推送延迟push_delay是什么?
推送延迟,是一个衡量C/S之间网络情况的参数。当这个参数发生波动的时候,则说明C端的包到达S的时间比预计要长。能够反映出网络的抖动情况。如果计算这个数值呢?简单来说,是使用了RTMP包头部的时间戳。如果非要用一个公式解释一下,我觉得应该是:
Delay=abs( (当前RTMP包的到达时间-上个RTMP包的到达时间) – (当前RTMP包的时间戳–上个RTMP包的时间戳) )
计算每个包到达服务器所消耗时间的差异值,用于代表网络的抖动。当然,还需要做其他很多事情,例如加权和jitter算法来减少误差和避免。
为什么还有send_kbps?
其实这也挺好理解,因为CDN本身是分布式系统,在节点和节点间需要做路径选择,然后从节点到节点传输,从而实现加速。Send_kbps其实就是前一个节点向后一个节点的发送码率。那么这就涉及到了一个问题,如果去trace某一条流的数据呢?对于每一条流,我们会给予一个唯一的标记,在节点间传递的时候,我们会给流添加一个自增的标记Hops。
通过这个标记,可以精准的找到这条流在节点件的走向,从而把各个节点的数据聚合在一起
其他,我们还会抓取一些类似源IP,用户设备等客户端的信息。这些信息能帮忙我们走进大数据时代。
整体数据服务的架构
分布式系统中,每一个节点都会产生大量的统计和性能数据。所以在视频云,有一个完整的统计架构来作出支持。从最前端的数据采集、传输,到汇总,然后到计算集群,最后输出。每一个服务都各司其职。让我们来看看整体架构。
对于每一个区域,会有一个数据汇聚的服务器,负责从流媒体服务器收集数据。最初的元数据,经过数据汇聚服务器汇总、过滤和压缩以后。统一上报到中心集群中的统计服务器。统计服务器会将所有的统计数据,逐一落库,储存在数据仓库中。其余的数据计算集群,会从数据仓库中定时进行读取计算。具体的计算间隔,会根据业务类型不同而不同。例如运维平台会主要读取一些机器级别的数据,进行分析和报警。大数据计算集群则会对数据进行计算,得出优化方向,此处我们稍后再聊。业务数据展示平台则是会实时的输出数据(例如码率和延迟),用于提供给用户和技术支持查询。当然,还有其他各种各样的数据处理服务,这里就不再一一介绍。
数据能做的一些事情
最后,我们聊一聊数据。在这个大数据时代,有了数据却不做事情,等同于浪费。那么,有了这些数据以后,我们做了什么事情呢?当然,最显而易见的,就是调整调度策略,增设布点。例如,上图的大数据的运算结果,南京电信的网络权重比较差,这就说明南京电信地区需要进行排查。而南京移动的用户量较大,也说明南京地区应该增设服务点。
此外,数据和性能指标的上报,也会被用于均衡负载调度。例如某一个节点压力较大的时候,或者性能不稳定的时候,这个节点的调度优先级就会被降低(即不太会被优先分配给用户)。
以上就是我对于直播CDN服务监控的一些看法,但是直播CDN服务监控和数据收集是一个值得无止境讨论和优化的事情,欢迎大家留言与我探讨。
想要获取更多产品干货、技术干货,欢迎关注网易云信博客。
网易云信(NeteaseYunXin)是集网易18年IM以及音视频技术打造的PaaS服务产品,来自网易核心技术架构的通信与视频云服务,稳定易用且功能全面,致力于提供全球领先的技术能力和场景化解决方案。开发者通过集成客户端SDK和云端OPEN API,即可快速实现包含IM、音视频通话、直播、点播、互动白板、短信等功能。
直播技术:从性能参数到业务大数据,浅谈直播CDN服务监控的更多相关文章
- 大数据、AI“武装”企业服务:风控、检索、安全
大数据.AI“武装”企业服务:风控.检索.安全 小饭桌创业课堂2017-05-06 15:26:42阅读(127)评论(0) + - 文|吴杨可月 - - 小饭桌创业研究院出品 - 两件秘闻,将美国大 ...
- 奇点云数据中台技术汇(一) | DataSimba——企业级一站式大数据智能服务平台
在这个“数据即资产”的时代,大数据技术和体量都有了前所未有的进步,若企业能有效使用数据,让数据赚钱,这必将成为企业数字化转型升级的有力武器. 奇点云自研的一站式大数据智能服务平台——DataSimba ...
- 2016中国大数据技术大会( BDTC ) 共商大数据时代发展之计
中国大数据技术大会(BDTC)的前身是Hadoop中国云计算大会(HadoopinChina,HiC).从2008年仅60余人参加的技术沙龙发展到当下数千人的技术盛宴,目前已成为国内最具影响力.规模最 ...
- AI时代,还不了解大数据?
如果要问最近几年,IT行业哪个技术方向最火?一定属于ABC,即AI + Big Data + Cloud,也就是人工智能.大数据和云计算. 这几年,随着互联网大潮走向低谷,同时传统企业纷纷进行数字化转 ...
- 从无到有开发连麦直播技术<转>
转贴地址:http://blog.csdn.net/heisedelangzi/article/details/52400333 从无到有开发连麦直播技术点整理-AnyRTC 直播关键字 采集.前处理 ...
- 大数据架构师NoSQL建模技术
从数据建模的角度对NoSQL家族系统做了比较简单的比较,并简要介绍几种常见建模技术. 1.前言 为了适应大数据应用场景的要求,Hadoop以及NoSQL等与传统企业平台完全不同的新兴架构迅速地崛起.而 ...
- 参加2013中国大数据技术大会(BDTC2013)
2013年12月5日-6日参加了为期两天的2013中国大数据技术大会(Big Data Technology Conference, BDTC2013),本期会议主题是:“应用驱动的架构与技术 ”.大 ...
- 大数据架构师必读的NoSQL建模技术
大数据架构师必读的NoSQL建模技术 从数据建模的角度对NoSQL家族系统做了比较简单的比较,并简要介绍几种常见建模技术. 1.前言 为了适应大数据应用场景的要求,Hadoop以及NoSQL等与传统企 ...
- TOP100summit:【分享实录-WalmartLabs】利用开源大数据技术构建WMX广告效益分析平台
本篇文章内容来自2016年TOP100summitWalmartLabs实验室广告平台首席工程师.架构师粟迪夫的案例分享. 编辑:Cynthia 粟迪夫:WalmartLabs实验室广告平台首席工程师 ...
随机推荐
- 如何提高自己的java开发功底
1.拥有扎实的基础和深刻理解OO原则 对于Java程序员,深刻理解Object Oriented Programming(面向对象编程)这一概念是必须的.没有OOPS的坚实基础,就领会不了像Java这 ...
- HDU 4862 Jump(更多的联合培训学校1)(最小费用最大流)
职务地址:pid=4862">HDU4862 最小费用流做的还是太少. 建图想不出来. . . 直接引用官方题解的话吧... 最小K路径覆盖的模型.用费用流或者KM算法解决,构造二部图 ...
- 数据结构 - 只需选择排序(simple selection sort) 详细说明 和 代码(C++)
数据结构 - 只需选择排序(simple selection sort) 本文地址: http://blog.csdn.net/caroline_wendy/article/details/28601 ...
- Visual C++文件扩展名解读
VisualC++文件扩展名解读 [1] .APS:存储二进制资源的资源辅助中间文件(能否加快资源加载速度). [2] .BMP:位图资源文件. [3] .BSC:浏览信息文件.由浏览信息维护工具(B ...
- WPF特效-鱼游动动画3
原文:WPF特效-鱼游动动画3 WPF不支持骨骼,故使用3DMax导出了序列模型文件(.mtl;.obj). 方法1: 使用Blend 2013打开所有obj文件,拖动排列一下即可在usercontr ...
- WPF 自定义验证规则
<Window x:Class="DataBindingExam.MainWindow" xmlns="http://schemas.microsof ...
- Boost的某些库还是需要生成二进制的库的,必须安装才行,以及使用库的方法
头文件就是库使用者最常问的问题就是“我该怎么安装Boost”,这个也是我一开始最关心的问题,Boost这点做的很好,将大部分实现都封装在头文件里,所以对于一些基本的Boost库,其实是不需要安装的,只 ...
- 【C#】解决MouseHook捕获鼠标动作,在有些电脑上SetWindowsHookEx失败返回0的问题
原文:[C#]解决MouseHook捕获鼠标动作,在有些电脑上SetWindowsHookEx失败返回0的问题 最近在debug鼠标位置捕获的功能时发现在其中的一台开发电脑上,SetWindowsHo ...
- 初探WINDOWS下IME编程
初探WINDOWS下IME编程作者:广东南海市昭信科技有限公司-李建国 大家知道,DELPHI许多控件有IME属性.这么好用的东西VC可没自带,怎么办呢?其实,可通过注册表,用API实现.下面说一下本 ...
- win10 uwp ApplicationView
原文:win10 uwp ApplicationView 本文和大家介绍一个重要的类,他可以用来设置窗口,如设置启动大小,设置是否允许截图,是否进入全屏,所有和窗口有关的,都可以在他这里设置. 可以使 ...