《云视听小电视性能和效率优化实践-郭利兵.pdf》由会员分享,可在线阅读,更多相关《云视听小电视性能和效率优化实践-郭利兵.pdf(32页珍藏版)》请在三个皮匠报告上搜索。
1、B B站小电视全链路性能站小电视全链路性能和效率优化实践和效率优化实践2023/12/29作者:郭利兵作者:郭利兵郭利兵郭利兵2021至今:bilibilibilibili 多屏技术部 资深工程师20142021:美团点评美团点评 资深工程师20112014:花旗金融花旗金融 高级工程师20072011:大连理工大连理工01小电视介绍小电视介绍小电视全称云视听小电视小电视全称云视听小电视丰富中长视频Feed流纯净无广告优势内容优质国创&番剧高分纪录片大型电竞赛事直播bilibili的电视版,电视看B站简介简介特点特点02优化背景优化背景为什么要做优化?为什么要做优化?向外看向外看向内看向内看1
2、.性能方面:和同行标杆电视App在启动,起播,卡顿率等方面存在差距,小电视的启动时长中位数4秒+,行业标杆都在3秒内。2.成本方面:当前大环境下,降本增效是互联网公司必修课。小电视2018上线,期间经历了从0到1的拓荒阶段以及井喷式增长阶段,过去在产品和功能上投入较多精力,现在需要在用户体验上和效率上做精细化运营,修炼内功。提升体验降低成本02分享重点分享重点目标制定目标制定&拆解拆解性能优化性能优化实践实践成本优化成本优化实践实践成果成果&总结总结03目标确定目标确定确定指标确定指标-性能目标性能目标启动快启动快起播快起播快卡顿少卡顿少从 4 s降低 3s 以内启动时长启动时长TP 90 1
3、400ms-TP 90 1000ms 以内首帧起播时间首帧起播时间单位时间内的(卡顿次数/播放 vv 数),从0.012 降低至 0.008以内卡顿率卡顿率如何评判一个电视视频如何评判一个电视视频AppApp的性能好坏呢?的性能好坏呢?03目标确定目标确定确定指标确定指标-成本目标成本目标1.xx1.xx元元1 1元以内元以内月均单月均单DAUDAU的带宽成本的带宽成本视频视频AppApp的成本主要有哪些?的成本主要有哪些?带宽成本带宽成本(85%)(85%)非带宽成本非带宽成本(15%)(15%)03目标拆解目标拆解梳理链路梳理链路启动快启动快起播快起播快卡顿少卡顿少成本低成本低Decode
4、rDecoder03目标拆解目标拆解性能目标拆解性能目标拆解-启动时长启动时长1.1.性能指标拆解性能指标拆解1.11.1 APPAPP启动时长启动时长1.2 首帧起播时长1.3 播放卡顿率2.效率指标拆解2.1 单DAU带宽成本3秒2.5秒客户端总耗时:客户端总耗时:1秒0.5秒服务端总耗时:服务端总耗时:启动时长中位数降低至启动时长中位数降低至3s3s内内客服端3s服务端1s03目标拆解目标拆解性能目标拆解性能目标拆解-首帧起播时长首帧起播时长1.1.性能指标拆解性能指标拆解1.1 APP启动时长1.21.2 首帧起播时长首帧起播时长1.3 播放卡顿率2.效率指标拆解2.1 单DAU带宽成
5、本CDNCDN下载:下载:650ms450ms解码耗时:解码耗时:700ms500ms起起播时长播时长TP 90 1000ms TP 90 1000ms 以内以内 80ms700ms 600ms 50ms03目标拆解目标拆解性能目标拆解性能目标拆解-卡顿率卡顿率1.1.性能指标拆解性能指标拆解1.1 APP启动时长1.2 首帧起播时长1.31.3 播放卡顿率播放卡顿率2.效率指标拆解2.1 单DAU带宽成本卡顿率降低至卡顿率降低至0.0080.008以内以内降低网络波动影响降低CDN不稳定影响低配设备提供极速版03目标拆解目标拆解效率目标拆解效率目标拆解-带宽成本带宽成本1.1.性能指标拆解性
6、能指标拆解1.1 APP启动时长1.2 首帧起播时长1.3 播放卡顿率2.2.效率指标拆解效率指标拆解2.12.1 单单DAUDAU带宽成本带宽成本降CDN价格降CDN浪费降码率单单DAUDAU成本降低至成本降低至1 1元以内元以内04性能优化实践性能优化实践APPAPP启动时长优化启动时长优化-客户端优化客户端优化梳理当前启动加载任务梳理当前启动加载任务问题问题1 1,当前任务大部分是串行,当前任务大部分是串行问题问题2 2,部分组件,部分组件&任务无需提前加载任务无需提前加载问题问题3 3,有很多独立的小进程,比如投屏,埋点进程,有很多独立的小进程,比如投屏,埋点进程耗时较长耗时较长04性
7、能优化实践性能优化实践APPAPP启动时长优化启动时长优化-客户端优化客户端优化串行改并行串行改并行-DAG-DAG有向无环图有向无环图04性能优化实践性能优化实践APPAPP启动时长优化启动时长优化-客户端优化客户端优化长链任务,日志任务,菜单拉取任务等不影响用户体验的任务,延后加载。延迟加载延迟加载将部分进程合并,避免过多进程影响启动时长,实际操作中,我们将投屏、埋点和主进程合并,来提升启动效率。合并任务合并任务04性能优化实践性能优化实践APPAPP启动时长优化启动时长优化-服务端优化服务端优化上海品茶推荐接口上海品茶推荐接口400ms+用户个性化接口用户个性化接口200ms+分区接口分区接口2
8、00ms+梳理当前启动时调用后端接口梳理当前启动时调用后端接口开机图展示接口33ms消息中心接口28ms开机图展示接口33ms家庭模式查询33ms游客信息查询4.5ms搜索底纹词33ms问题问题1 1,RedisRedis耗时不稳定,耗时不稳定,TP90TP90 20ms+20ms+问题问题2 2,接口返回数据量大,接口返回数据量大,400kb+400kb+问题问题3 3,接口返回数据字段有,接口返回数据字段有40%40%不被使用不被使用04性能优化实践性能优化实践APPAPP启动时长优化启动时长优化-服务端优化服务端优化缓存优化缓存优化HTTP转RPC协议,传输数据压缩1/3左右,减少客户端
9、序列化以及传输压力,同时性能提高了 10%左右数据压缩数据压缩HttpHttp请求请求RPCRPC请求请求VSVS压缩率压缩率Json二进制文件序列化协议序列化协议解析效率解析效率耗时较长较快较低,冗余信息多压缩率高04性能优化实践性能优化实践APPAPP启动时长优化启动时长优化-服务端优化服务端优化抽象编排抽象编排通过日志工具分析接口调用链路,发现存在大量的无效调用,主要原因是存在很多大而全的接口,一次返回太多冗余信息;将这些大接口进行拆分,针对起播时的推荐场景定制小而美的依赖接口04性能优化实践性能优化实践首帧起播时长优化首帧起播时长优化操作播放感知播放首帧起播过程首帧起播过程数据下载创建
10、播放器初始化解码器视频解码音频解码视频帧渲染音频渲染视频开始播放网络耗时网络耗时600ms600ms内核初始化耗时内核初始化耗时500ms500ms渲染耗时渲染耗时200ms200ms创建解码器04性能优化实践性能优化实践首帧起播时长首帧起播时长-网络耗时优化网络耗时优化对连播场景就是提前下载视频数据的一部分,来达到快速起播的效果,那具体什么时候预加载。预加载预加载当前视频下载完毕后时机时机根据视频长度、头大小、码率,计算出大小,一般预加载500ms大小大小最少2个,根据调优以及真实命中情况判断,根据经验3个利用率较高。数量数量04性能优化实践性能优化实践首帧起播时长首帧起播时长-解码器复用解
11、码器复用解码器复用解码器复用createconfigstartstop04性能优化实践性能优化实践卡顿率优化卡顿率优化-网络优化网络优化减少缓存动态缓存动态缓存网络差网络差网络好网络好恢复码率自适应码率自适应码率降低码率加大缓存04性能优化实践性能优化实践卡顿率优化卡顿率优化-CDN-CDN优化优化4K4K 回源路径缩短回源路径缩短BackupBackup URLURL 方案方案定期检测当前源的状态,如果检测到播放问题(例如卡顿、缓冲过长等),自动切换至备份CDN低峰期低峰期4k4k资源预热资源预热05成本优化实践成本优化实践降低成本与提升效率双管齐下降低成本与提升效率双管齐下降低降低带宽成本
12、带宽成本优化优化码率与画质码率与画质05效率优化实践效率优化实践CDNCDN成本优化成本优化-带宽成本组成带宽成本组成带宽价格商业CDN自建CDNPCDN提高提高PCDNPCDN利用率利用率降低降低CDNCDN下载量下载量带宽成本95峰值用量CDN单价=*05效率优化实践效率优化实践CDNCDN成本优化成本优化-降降CDNCDN价格价格&用量用量动态动态PCDNPCDN策略策略我们联合CDN调度团队,通过监控网速、码率、剩余视频缓存等多个因素,动态的权衡什么时候用廉价CDN,什么时候用商业CDN,在保证播放质量的前提下尽可能的多用廉价CDN。削峰填谷削峰填谷CDN的计价方式一般使用采用95峰值
13、,所以我们在低峰期提前对热度较高的视频进行预热,降低回源比例,从而降低CDN 95峰值低峰期预热占比占比85%85%05效率优化实践效率优化实践CDNCDN成本优化成本优化-降清晰度降清晰度&降浪费降浪费用户差异化用户差异化不同机型使用不同默认清晰度不同机型使用不同默认清晰度,低端机型存在卡顿情况使用较低的清晰度,一方面低端机型播放高清视频存在卡顿,另一方面也能降低响应的VV码率从而减低带宽成本。针对不同用户使用不同默认清晰度针对不同用户使用不同默认清晰度,登录用户默认较高清晰度,一来提供用户登录率,二来降低默认视频的播放码率。投屏清晰度调整投屏清晰度调整,投屏到第三方清晰度调整成720p,一
14、来是提高小电视的DAU,二来也降低带宽成本。降低预加载浪费降低预加载浪费视频预加载动态化视频预加载动态化,动态调整Feeds流的的加载数量和时长,AB实验寻找最优值。按需加载预览图,按需加载预览图,针对用户的“拖拽行为,我们会预加载全量预览图,存在大量浪费,改成按需实时预加载预览图。05效率优化实践效率优化实践码率增强优化码率增强优化降码率降码率视频码率是指视频文件在单位时间内的数据传输速率,也叫比特率(bits per second,bps)主要是通过视频压缩,使用视频压缩算法对视频进行编码。窄带高清算法,视频转码过程优化,视频经过窄带高清转码后,带宽变小,画质不变。自研转码算法。提画质提画
15、质联合视频团队通过增强算法提升 1080P、4K 的画质,主要通过 HDR 技术以及局部增强等技术,如下图同样是 1080p,增强后效果显著。05效率优化实践效率优化实践0202 码率增强优化码率增强优化-效果效果06成果成果&总结总结总结总结DecoderDecoder06成果成果&总结总结成果成果2.92.9s s启动时长从 4.2 秒 降低至 2.9 秒4.24.2s s0.560.56%播放卡顿率从 1.2%降低至 0.56%1.21.2%900900msms首帧起播时长从 1400ms 降低至 900ms14001400msms20%20%带宽成本每月/单 DAU 带宽成本 1.xx 降低至 0.xx半年节省带宽成本 xx万+1.xx1.xx元元感谢倾听,欢迎交流感谢倾听,欢迎交流