网易首页 > 网易号 > 正文 申请入驻

虎牙数万主播同时在线直播的秘密,CDN 推流日志上行实时监控。又拍云 Open Talk | 2018音视频技术沙龙·深圳站

0
分享至

6月10日,又拍云 Open Talk | 2018 音视频技术沙龙·深圳站 顺利落幕,来自虎牙的直播运维研发架构师张波在沙龙上做了《基于CDN推流日志的主播上行实时监控及其自动化解密》的分享。虎牙直播是中国领先的互动直播平台,作为“游戏直播第一股”,是音视频技术的典型应用企业。

张波目前主要负责虎牙直播运维体系的建设,针对 Web 和后台类程序的发布、监控、运维自动化相关的运维系统进行设计和开发。本次分享中,张波结合在一线工作中的实践,介绍虎牙直播针对主播推流在 CDN 环境下的优化技巧,以及实践过程中碰到的各种坑。

以下是分享内容:

虎牙直播作为游戏直播平台,拥有数百个产品线,同时在线主播数高达数万,因此虎牙接入了多家 CDN 厂商。

体量这么大的主播上行量通过 CDN 端推流日志如何做到自动监控,异常及时发现,业务如何通过系统准确定位?

用户侧、网络侧、CDN 运营商侧等引起的故障,如何做到故障分钟定位?

先与用户发现定位系统问题瓶颈,如何用数据指引 CDN 提升服务质量呢?

这次分享,我们就来聊聊如何解决这些问题。

首先是主播监控手段,最直接、最低延时的监控手段是观察用户弹幕喊卡。

当弹幕开始喊卡时,开发会上系统查看端上上报的监控数据来定位问题。但是仅仅依靠服务端数据,是很难确定问题是发生在哪里的,线路、客户端、CDN、IDC 都有可能出现问题。

直播出现问题的原因有很多,我们要如何准确定位业务问题呢?

一般情况下,当虎牙主播直播出现问题后,开发会让运维提供 CDN 服务器端数据,来定位问题,再由运维联系 CDN 运营商排查问题,最后由 CDN 厂商解决问题。

除此之外,虎牙还有其他的监控方案:

1. 第三方拨测监控;

2. 端上报数据监控(主播端上报,用户端上报);

3. 弹幕喊卡监控

4. 服务端数据监控;

5. 机房网络监控。

CDN 侧健康管理

面向用户体验端到端的健康管理,范围比较大。本次分享主要讲一下 CDN 侧的健康管理,比如判断 CDN 是否存在问题?

上图系统的核心功能主要有:

1. 建立应用服务监控视图;

2. 关注应用性能;

3. 多段、多层数据关联分析;

4. 了解用户感知;

5. 了解应用最终交付状态;

6. 了解应用对业务的影响;

7. 端到端覆盖应用路径;

8. 追踪应用服务质量;

9. 快速诊断和定位故障。

△ 虎牙部分监测系统

图中也显示了各个线路的质量情况,虎牙每 20 秒检测一个节点情况,而 CDN 的线路图,监控时效性是一分钟延迟,因此全网 CDN 上行质量出现问题的话,会在一分钟内发出告警。同时全网的出现卡顿的主播在卡顿监控中可以试试看到,并实现定位上行卡顿原因,迅速排出是否是厂商线路问题或运营商线路问题。

CDN 端到端的应用性能管理

上图是监测系统的核心功能——端到端的应用性能管理,图中描述了主播上行链路,上行方式分为 CDN 上行和虎牙上行,CDN 上行是指通过 CDN 上行服务进行上行传输。

当 CDN 端接收到上行视频后,会进行转码和转推,转推就是指将虎牙主播的上行流视频转推给其他厂商,让用户在各个厂商和线路上观看到直播。

所以直播上行可能会出现的故障,要么是主播端设备问题,要么是主播端到上行节点网络问题,或者是 CDN 上行服务器节点自身问题,再或者是上行视频转推给其他 CDN 厂商转推问题。

性能数据要覆盖哪些项目

上表是虎牙实时监控平台的部分核心功能以及性能指标的覆盖项。

主播端主要根据这些参数进行监控,比如 Block 阻塞次数、CPU、解码 CPU、模板 CPU、内存以及断开原因等监控指标。

IDC 层与 CDN 层监控指标相对较少,只有卡顿率和性能指数,这次分享也主要讲解性能指数。

在用户端虎牙设置了感官卡比监控指标,感官卡比就是用户真实感受卡顿的比例,除了感官卡比之外,还有解码方式、主动丢帧等监控项。

实时监控需要注意的技术点

在实时监控这方面,我们使用的相关技术点,主要有:

1. 流计算:sprak

2. 实时日志存储:内部日志索引服务

3. 数据存储:Hbase、Opentsdb

主播上行部分数据处理量并不大,即使是虎牙这个体量的直播平台,原始日志一秒一条日志5秒合并输出一条。

aac:0 bigint 接收或者发送aac的次数

abytes:4017#5733#7186#5642#4179 string 接收或者发送的音频字节数

adrop:0#0#0#0#0 string 音频发送丢帧数

afcnt:30#43#53#42#31 string 音频帧数

afts:468664897#468665895#468667126#468668101#468668821 string 音频时间戳

agap:0#0#0#0#0 string 音频帧最大接收间隔(ms)

app:hunantv string rtmp协议中的app

appbuf:0#0#0#0#0 string 应用层发送队列长苏

avc:0 bigint 接收或者发送的avc的次数

block:0 bigint 卡顿次数

bwin:0.0000 double 入带宽

bwout:76382.0000 double 出带宽

gop:180871 bigint 关键帧序号

mss:1460#1460#1460#1460#1460 string mss大小

netqlen:96617#70188#57206#74576#106873 string tcp发送大小

retrans:0#0#0#0#0 string 重传包数

rtt:1#1#1#1#1 string tcp层的rtt (ms)

rwd:0 string tcp的接收窗口大小.目前为空

sndbuf:0 string tcp的发送大小

tcpbuf:715#2841#1808#19705#724 string tcp的buffer大小 字节数

vbytes:64523#51103#64525#103969#68513 string 接收发送的音频字节数

vdrop:0#0#0#0#0 string 视频丢帧数

vfcnt:17#25#31#25#17 string 视频帧率

vfts:468664864#468665864#468667104#468668104#468668784 string 视频时间戳

vgap:0#0#0#0#0 string 视频帧之间最大间隔 (ms)

vhost:xx.mgtv.com string 域名

vname:xx.mgtv.com_HNGGMPP360 string 流名

△ CDN 上行日记

上面这个表格是 CDN 上行日志,可以看到其中的描述项非常多,能够直接反应主播上行质量的指标并不多。

我们要如何从日志中挑选出需要的数据进行监控呢?

its 采集时间戳(毫秒)

uip 主播IP,点分十进制

inip 节点IP,点分十进制

inarea 节点省份

inisp 节点ISP信息

streamhost 流域名,如:tx.direct.huya.com

streamname 流名称

vfps 视频帧率 (5秒一条数据,1秒一个值,每个值用#分隔)

vts 视频时间戳(毫秒) (5秒一条数据,1秒一个值,每个值用#分隔)

afps 音频帧率

ats 音频时间戳(毫秒)

[{"afps":30,"ats":9689432,"inarea":"河北","inip":"124.239.xxx.xx","inisp":"电信","its":1521530182,"streamhost":"ws.xxx.huya.com","streamname":"/huya/xxx-xx-xx-xxx-xx-A-xxx-1","uip":"123.182.xx.xxx","vfps":30,"vts":9689399}]


△ 虎牙统一上行标准日志

上面表格是日志监控解决方案,虎牙定义了用于监控的标准日志。统一标准后的日志对比之前的日志减少很多内容。

重点提取了采集时间戳、主播 IP、节点 IP、节点省份、推流域名、视频帧率、视频时间戳、音频时间戳、音频帧率等监控项数据,有利于对数据进行分析。

如何设计统一上行质量度量方式

在度量上行质量方面,虎牙使用的是一个国际通用标准,Apdex 是用户对应用性能满意度的量化值。它提供了一个统一的测量和报告用户体验的方法,把最终用户的体验和应用性能作为一个完整的指标进行统一度量。

Apdex 会定义应用响应时间的最优门槛为 T,另外根据应用响应时间结合 T 定义了三种不同的性能表现:

1. Satisfied(优质):应用响应时间低于或等于 T(T 由性能评估人员根据预期性能要求确定),比如 T 为 1.5s,则一个耗时 1s 的响应结果则可以认为是 satisfied 的;

2. Tolerating(可容忍):应用响应时间大于 T,但同时小于或等于 4T。假设应用设定的 T 值为 1s,则 4 * 1 = 4 秒极为应用响应时间的容忍上限;

3. Frustrated(劣质):应用响应时间大于 4T。

这个方案描述了服务质量如何度量,它将服务质量分为三部分:优质样本、可容忍样本、劣质样本。

这样操作就把复杂的操作变简单,三级度量,每一级度量都会有对应的分值,优质样本 1 分,可容忍样本 0.5 分,劣质样本 0 分,复杂问题通过计算公式简单化。

再者,上行质量要怎么去度量呢?

我们可以这样来看,在帧率没有出现明显抖动时,用户感觉不到卡顿,我们就没有必要把这个上行定义为问题。

样本:当前平均帧率与前两秒抖动最大差值

优质样品: 0% <= 评分 < 5%

可容忍样品: 5% <= 评分 < 10%

劣质样品: 10% <= 评分

虎牙通过测量当前平均帧率与前两秒抖动最大差值,来度量优质样本。

优质样本要求评分在 0% 到 5%,可容忍样品在 5% 到 10%,劣质样本小于等于10%。

一般来说,如果主播视频的平均上行帧率是 30 帧,5%是指抖动 1 秒产生的抖动帧是 1.5 帧。

1.5 抖动帧,大部分人感觉不到画面抖动,但是达到 3 帧时,用户就能感受到画面的抖动。

通过实时/离线计算结合,提升数据准确性

虎牙的计算方式是实时和离线结合的,实时计算由于数据延迟,或者实时计算问题,导致数据不太精准。

如果要实时计算的数据作为调度或者厂商质量评判标准的话,就需要辅以离线计算,让数据更准确,才能指导厂商优化节点以及调度服务优化线路。

主播上行质量实时监控系统应用的典型场景

主播上行实时监控的应用场景有四个方面:

1. CDN 入围测试:制定入围标准,上行接入质量达到,缩短测试周期

2. CDN 运行监控:实时获取CDN端运行数据,对可能的主播运行风险进行及时预警,实现主播级的故障自愈和问题定位

3. 节点质量管理:实时评价CDN上行节点健康度,主动发现影响客户体验因素,屏蔽质量较差的节点和线路

4. 主播上行,运营分析:利用全方位的主播上行性能数据,出具主播质量和线路质量性能报告,从业务角度为主播上行质量运营提供分析数据。

点击阅读原文,查看讲师分享 PPT 和分享视频。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
央视三胎宣传片翻车惹争议:看似温情劝生,为何吓退无数年轻人?

央视三胎宣传片翻车惹争议:看似温情劝生,为何吓退无数年轻人?

大稻网络科技
2026-05-25 15:23:25
15分钟灭国警告!俄罗斯摊牌:若敢碰加里宁格勒,就让立陶宛消失

15分钟灭国警告!俄罗斯摊牌:若敢碰加里宁格勒,就让立陶宛消失

观史搜寻着
2026-05-25 10:50:13
李晨郑恺停更后续,节目中更多被欺凌片段爆出,沙溢评论区已沦陷

李晨郑恺停更后续,节目中更多被欺凌片段爆出,沙溢评论区已沦陷

乐天闲聊
2026-05-25 13:59:46
最应被铭记的中国矿难事故:死亡数全球第一,震惊国内外

最应被铭记的中国矿难事故:死亡数全球第一,震惊国内外

网易新闻出品
2026-05-25 13:17:51
半导体大利好!13家先进封装集体涨停,高盛提前埋伏5家低至40亿

半导体大利好!13家先进封装集体涨停,高盛提前埋伏5家低至40亿

长风价值掘金
2026-05-25 20:35:03
郑钦文出局创7大尴尬数据:第四次大满贯一轮游 暴跌至第117名

郑钦文出局创7大尴尬数据:第四次大满贯一轮游 暴跌至第117名

醉卧浮生
2026-05-25 19:06:14
奶茶店施暴女子已被行拘:正脸曝光,身份被扒是老师,工作恐不保

奶茶店施暴女子已被行拘:正脸曝光,身份被扒是老师,工作恐不保

奇思妙想草叶君
2026-05-25 23:22:54
有50年从业经历的煤老板坑了博士县长

有50年从业经历的煤老板坑了博士县长

深度财线
2026-05-25 14:32:25
无缘世界杯!皇马6500万名将晒图质疑西班牙主帅:我进西甲最佳阵

无缘世界杯!皇马6500万名将晒图质疑西班牙主帅:我进西甲最佳阵

我爱英超
2026-05-25 22:03:22
市场走出了标准的股灾牛

市场走出了标准的股灾牛

曹多鱼的财经世界
2026-05-25 14:42:17
洪水泥浆中抱树求生成“泥人” 当事人回应:乡亲们安全,路抢通,比啥都强!

洪水泥浆中抱树求生成“泥人” 当事人回应:乡亲们安全,路抢通,比啥都强!

封面新闻
2026-05-25 18:16:08
学术界瑟瑟发抖:难怪杀得这么猛,原来耿同学是被退学的

学术界瑟瑟发抖:难怪杀得这么猛,原来耿同学是被退学的

读鬼笔记
2026-05-23 19:44:48
同样是南亚,为啥就印度又热又脏?巴基斯坦、斯里兰卡、孟加拉?

同样是南亚,为啥就印度又热又脏?巴基斯坦、斯里兰卡、孟加拉?

混沌录
2026-05-25 22:44:14
《亢奋》女主全裸出镜!床都塌了

《亢奋》女主全裸出镜!床都塌了

娱圈观察员
2026-05-26 00:21:12
穷果然不养人!家里破产后,王文也面相都变了,公主开始吃路边摊

穷果然不养人!家里破产后,王文也面相都变了,公主开始吃路边摊

残梦重生来
2026-05-25 04:29:17
雷军称计划月底停用推荐码:使用我的推荐码的车主实在太多,我有点扛不住了;此前多次在微博附上自己的推荐码供车主锁单

雷军称计划月底停用推荐码:使用我的推荐码的车主实在太多,我有点扛不住了;此前多次在微博附上自己的推荐码供车主锁单

鲁中晨报
2026-05-25 21:22:20
细糠!!太通透了,这才是对孩子真正的托举!

细糠!!太通透了,这才是对孩子真正的托举!

另子维爱读史
2026-05-25 19:44:13
这美女也太顶了!主教练喝水好啊!得看!

这美女也太顶了!主教练喝水好啊!得看!

柚子说球
2026-05-25 20:11:02
广东省批复:深圳街道可直接对乱摆卖、占道经营实施行政处罚

广东省批复:深圳街道可直接对乱摆卖、占道经营实施行政处罚

南方都市报
2026-05-25 23:28:45
郑钦文泪洒发布会:这是一场沉重的失利,考虑从低级别赛事打起

郑钦文泪洒发布会:这是一场沉重的失利,考虑从低级别赛事打起

全景体育V
2026-05-25 21:39:23
2026-05-26 07:56:49
又拍云
又拍云
一站式的云加速服务
671文章数 54关注度
往期回顾 全部

头条要闻

燃油车齐降价捷豹路虎打对折 网友:感觉燃油车又香了

头条要闻

燃油车齐降价捷豹路虎打对折 网友:感觉燃油车又香了

体育要闻

如果不好好守门,他可能早就继承家业了

娱乐要闻

李晨郑恺跑男停宣:12年元老被边缘化

财经要闻

起底煤矿“暗面”:假整改、假数据

科技要闻

微软22.8万人,被迫过创业公司的日子

汽车要闻

启境GT7定档5月29日预售 提供三电机版本

态度原创

旅游
教育
时尚
房产
手机

旅游要闻

曾经仅有二十余位老人,如今游客超六十万人次——“空心”新光村,唱着歌儿焕新貌

教育要闻

斐波那契数列,非常有意思!

Bella的戛纳之旅,次次“神级”表现

房产要闻

工抵房骗局!134套房款入私账!海南这个盘,坑惨买房人!

手机要闻

iQOO 16再次被确认,规格信息都已清晰,REDMI能招架住吗?

无障碍浏览 进入关怀版