华为云流媒体性能测试解决方案 轻松应对流量危机【华为云技术分享】

背景

随着带宽提速和互联网发展,内容丰富、形式多样的视频正成为碎片化时代娱乐消费的新宠,短视频、视频直播、在线钢琴陪练、合唱直播一系列新玩法层出不穷,涉及电竞、社交、电商、教育等各个行业。网络视频快速发展对系统性能带来了巨大的考验。

流媒体业务场景
下面是用户与流媒体服务器的简化交互关系,主要分为推流和拉流2大类。

推流就是从外界采集数据后利用流媒体协议将文件推流至流媒体服务器端,拉流就是将文件从流媒体服务器拉取至本地播放的过程,流媒体的文件主要是由音频和视频2个部分组成,youtube、土豆、优酷等视频播放器播放一个互联网上的视频文件时,需要经过解协议、解封装、音视频解码、以及音视频同步这几个步骤。因此对流媒体的压力测试也需经历这些过程,所以先了解几种常见的流媒体协议:

HLS:HTTP Live Streaming(HTTP直播流技术),Apple的动态码率自适应技术,不同带宽的设备可以自动切换到最适合自己码率的视频播放。HLS基于http短连接,将整个流切分成一个个小的文件来下载,也就是ts切片文件,并更新m3u8的索引文件、存放ts文件配置信息和相关路径。m3u8由一系列的标签组成,ts文件为传输的流文件,视频编码主要格式h264/mpeg4,音频为acc/MP3。HLS的主要缺点就是时延性在10秒以上。

RTMP:Real Time Messaging Protocol(实时消息传输协议),该协议基于TCP ,使用端口1935,每个时刻的数据收到了即可转发,RTMP协议需要客户端和服务器通过“握手”来建立基于传输层链接之上的RTMP Connection链接,在这个连接上传输对应的控制信息和对应的Message,RTMP的实时性比HLS要好,往往时延在5S以下。并且RTMP有RTMPT,RTMPS等变种。
下面我们来了解下流媒体播放的主要流程,流媒体播放主要分为直播和点播2大类,区别在于直播是利用一些新兴或者传统的媒介实时的进行图像和声音的采集,如录像机,麦克风、手机等,将采集的数据进行处理和编码,利用上面提到了流媒体协议进行封装,之后将数据流推送到直播节点上,观众可以实时进行观看。点播的数据来源则是已存在的视频,或者是通过直播流录制转换后的视频,可以回放观看。之后流媒体服务器通过CDN分发网络,根据拉流端的码率实时转码,就近的将数据流发送至客户端,缩短请求响应时间。

观众端最终通过播放器解码、在不同的地点播放观看对应的直播视频和点播视频。然而不同的站点和播放器观众体验大相见庭,有的时候我们会说这个视频特别流畅,或者特别卡,从观众的角度具体有哪些直观的体验维度呢?

流媒体业务质量度量指标
下面是几个主要影响用户观看体验的指标:
• 播放是否成功,直接的功能性影响;
• 播放过程中是否出现了卡顿,需要等待,影响观众体验;
• 延迟是否很大,直播中的互动对延迟要求性高,延迟太大,影响与观众的互动;
• 首屏时间,视频是否秒开,即点击播放后到看到播放画面的时间,秒开时间越短,用户体验自然越好;
• 音质和画质是否同步,以及播放的时候是否出现了花屏、黑屏或者绿屏。

流媒体业务挑战
视频/短视频领域当前行业竞争十分激烈,服务质量往往会成为服务提供商生存的生命线,单在技术上主要面临着以下几个挑战:
• 海量并发场景常见
不同于普通应用和游戏,视频类应用的使用时间非常集中,大致在晚饭后至睡前22点-23点,在短短几小时内涌入大量用户,例如一个大V/流量明星直播可以引起百万级用户的登录。海量的并发用户常常造成视频卡顿、画面延时甚至应用崩溃,这已经成为企业不能承受之重。
• 用户对高延迟容忍度下降
随着互联网网速的变快,用户的耐心程度正不断下降,视频加载时间每长1秒,就会有约6%的人放弃观看。对直播来说即时性就显得尤为重要,如果主播端与观众端的互动无法同步时,给用户带来不好的体验。
• 用户交互频率高
视频应用与普通应用相比,涉及很多的用户交互频次高的场景,视频流服务器除了承担并发用户压力之外,还包括用户消息推送、礼物、聊天、红包雨等场景带来的数据交互压力。这些用户交互频次高的场景同时涉及大量外部API接口,时刻影响着用户体验。

视频/短视频公司为了快速抢占市场,必须快速的攻克这些挑战,利用当下的一些新兴的技术,提升服务器性能。像是通过GOP缓存,改写播放器逻辑,让播放器在拿到第一个关键帧后就直接显示而不是等待音视频同步后再进行播放;建立CDN内容分发网络,经过策略部署,负载均衡,降低服务器和带宽的压力;提前做好DNS解析,提高视频文件下载性能;以及对服务器进行压力测试,围绕客户播放行为识别性能瓶颈,进行优化。

流媒体压力测试:
流媒体的压测测试主要是通过模拟海量用户访问直播点播的场景,关注于服务器是否能够在高并发时间段稳定运行,在播放视频时不出现卡顿、花屏等问题影响用户观看体验,以及是否可以及时响应秒开视频等。
视频卡顿主要有2个大方面的因素:
1) 外因,客户端的设备配置太差,对应的硬件来不及处理数据,或者对应的软件版本太低,这样只能是升级硬件以及更新版本。另一个是网络太差,随着网络通信的快速发展,对数据传输的要求也随之增加,在数据来不及发送客户端出现了等待数据的情况,也会导致视频卡顿;
2) 内因,流本身出现了音视频时间戳不同步,流对应的参数不正确导致的视频卡顿。另外,通过视频首帧用时和首包用时可以客观的量化用户的观看体验,这些都是流媒体进行压力测试需要主要关注的问题。
视频出现花屏的主要可能:
1) 丢失了关键帧或者没有从关键帧开始解码。对于H.264码流来说,分为I、B、和P三中类型的帧,其中I帧为关键帧,可以独立的解码播放,B 帧是双向预测内插编码帧,丢失了I帧和后面的P帧,则会解码失败,P 帧是前向预测编码帧,丢失了前面的I、B、P帧也会导致解码失败。对于此类的解码失败一般就会出现花屏的现象。
2) 图像格式的转换不正确,例如横屏播放变成了竖屏播放,拉流端图像尺寸发生了变化需要重置对应的解码器,否则容易出现花屏。
3) 渲染出现了脏数据,主要就是还没有完成渲染的数据被送到了编码器编码,导致图像错位,或者撕裂等。

那么验证流媒体服务器的性能,保障流媒体的质量显的尤其重要。我们在网络上搜索流媒体压力测试时能看到基于srs-librtmp实现的srs-bench的开源工具,但是该工具在进行压力测试时看到的性能指标有限,只有数据包的时间长度和对应的大小和等待时间,这个无法客观的体现用户体验,并且该工具无法满足chunked的方式,测试场景受到很大的限制。

而华为云性能测试服务(CPTS)针对以上场景,针对以上测试场景的诉求,增强支持了可以兼容HLS和RTMP的流媒体压测能力,可进行端到端的压力测试,压测业务流量如下图所示:

CPTS利用执行机模拟大量并发用户的客户端向CDN或者源站发起请求,模拟拉流操作,CDN或者源站在收到请求后,会将响应报文返回至CPTS压测执行机,以HLS协议点播为例,CPTS压测执行机通过对CDN或者源站发起请求,得到m3u8索引文件,按序请求下载获取每一段ts数据流。解析对应的ts流,实时计算视频的帧率、码率、首包用时和首帧用时,之后还将利用异步线程模拟播放流媒体文件,识别视频是否出现卡顿和花屏,模拟CDN或者源站在高压力场景下,客户端收到视频流在实际播放过程中是否会产生的问题。

在视频场景上,支持点播和直播两种模式,并且大大丰富了针对视频播放的质量监控指标,可以动态获取视频压测时对应的视频首包用时、首帧用时、平均下载速度、码率、帧率、带宽等性能指标,下表为具体的流媒体性能测试指标,以及对应的参考值。

性能测试指标

实测效果:
下面我们利用CPTS对流媒体服务器进行压力测试,模拟200个用户同时观看直播对流媒体服务器带来的压力。
下图为对应的实时报告,首先查看是否存在错误信息,可以看到当200个用户对服务器进行并发访问时,存在12次的连接错误,说明服务端在当前压力下无法正常处理HLS直播链接,会导致这部分用户无法打开视频。

由上图可以看出该场景下,视频平均帧率为24fps,这是由于测试桩固定帧率为24fps,一般在视频的性能测试中,如果帧率小与24fps时用户能感知到视频卡顿;通过平均首包用时和平均首帧用时客观体现用户体验,如果平均首包用时小于1s,用户体验感较好;该测试结果为1.09s大于1s,用户体验一般;如果平均首帧用时小于1s时,用户体验感好,该测试结果为2.58s大于2.5秒,用户体验较差;因为码率的大小一定程度决定视频文件的清晰度、流畅度,码率越高,画质越好,所以测试报告中展现出码率的动态变化曲线;另外展示出上行带宽和下行带宽实时数据,查看网络状况。通过这些视频指标可快速对服务器能力进行评估。
通过CPTS能够快速的对流媒体进行压力测试,并将用户体验指标量化,直观的透过数据报告指标展示用户体验优劣。CPTS服务免去用户搭建环境的时间成本和人力成本,只需重点关注业务的开发及性能的提升,将性能测试化繁为简,畅享云端体验。

云性能测试服务官网:https://www.huaweicloud.com/product/cpts.html

原文地址:https://www.cnblogs.com/huaweicloud/p/12017406.html

时间: 2024-08-26 07:34:38

华为云流媒体性能测试解决方案 轻松应对流量危机【华为云技术分享】的相关文章

MySQL 作为新的 NoSQL 解决方案: 轻松应对亿级数据

MySQL现在是一个更好的NoSQL解决方案.我们这样说是因为在存储 键/值(key/value) 之类数据时, MySQL 具有性能.易用性和稳定性方面的优势.MySQL引擎稳定可靠,并且社区和官方支持良好,有非常丰富的在线资料, 涵盖了各种操作.故障排查,复制以及各种使用模式等方面.基于这个原因, MySQL比起新兴的NoSQL引擎具有很大优势. 近年来,NoSQL引擎已成为主流.许多开发者将NoSQL引擎(包括: MongoDB, Cassandra, Redis, 和 Hadoop等)视

华为云推出业界首个基于ARM框架的云手机解决方案

华为云推出业界首个基于ARM框架的云手机解决方案在手机已经普及到千家万户的时代,人们对手机应用的诉求日益提升.为此,华为云推出了云手机. 华为云云手机提供基于云的虚拟仿真手机服务,将手机上的应用转移到云上的虚拟手机来运行,重新定义了手机应用的开发和使用. 1 华为云云手机靠谱么?就在2019年新年伊始,华为云云手机就斩获"2018年度杰出云计算创新产品奖".该奖项由51CTO主办的<中国企业"IT印象◆创新IT,赋能未来"年终评选>活动颁发. 同时,在绿

基于分布式关系型数据库,实现轻松应对百亿级数据分析场景解决方案

MyCat是什么? 从定义和分类来看,它是一个开源的分布式数据库系统,是一个实现了MySQL协议的服务器,前端用户可以把它看作是一个数据库代理,用MySQL客户端工具和命令行访问,而其后端可以用MySQL原生协议与多个MySQL服务器通信,也可以用JDBC协议与大多数主流数据库服务器通信,其核心功能是分表分库读写分离,即将一个大表水平分割为N个小表,存储在后端MySQL服务器里或者其他数据库里.也可以指定多个写库多个读库. MyCat发展到目前的版本,已经不是一个单纯的MySQL代理了,它的后端

【华为云技术分享】大数据容器化,头部玩家尝到了甜头

[摘要] 大数据容器化,大势所趋.头部玩家在进行大数据容器化后,尝到了甜头? 大数据的需求热度,从来都是这个时代的浪尖.然而由于大数据系统的复杂性,一度导致业界大数据已死的各种声音不断.尤其是当MapR被HPE收购,Cloudera公司股票持续跌成狗,使得这种声音进一步放大.其实,大数据的需求一直在,只是传统的大数据实现系统需要考虑重新构建.而容器依靠其自身的标准化,一次构建,随处运行的能力,使得非常适合大数据系统的构建和管理.容器技术当前正是那只火遍全球的当红辣子鸡. 1 华为云BigData

从世纪互联到世纪流量,混合云还有哪些新玩法?

(上图为世纪互联CEO张振清) 如今,整个IT业界都认同一个混合云的近期未来.尽管2015年的<Gartner新兴技术炒作曲线>判断混合云还要2到5年才能成熟,但该曲线也指出整个业界已经开始认真考虑如何真正交付混合云,在交付混合云方面不断积累经验.中国信息化推进联盟副理事长兼秘书长刘献军表示,兼有公有云和私有云优点的混合云将逐渐成为产业发展的重要方向,应用场景广泛覆盖政府业务.医疗.安防.酒店.银行等领域. 从2015年下半年开始,先后有华为推出面向混合云的企业云.IBM和思科等加速收购推进混

Hyper-V 2016 系列教程11 太仓民政局 微软 Hyper-V 虚拟化解决方案介绍 采用的是华为系列服务器

分享一个小型的Hyper-V 虚拟化解决方案介绍 采用的是华为系列服务器 软件清单简介: Windows Server 2012 客户可以利用Windows Server 2012 Hyper-V的虚拟化技术来降低成本以获利.传统的多个服务器角色可以整合到一台物理机器上的并行运行的不同操作系统的一组相互隔离的虚拟机上,并且能够利用X64架构的超强计算能力. 2. Microsoft System Center 2012 Microsoft System Center 2012是一套云计算和数据中

「视频直播技术详解」系列之七:直播云 SDK 性能测试模型

?关于直播的技术文章不少,成体系的不多.我们将用七篇文章,更系统化地介绍当下大热的视频直播各环节的关键技术,帮助视频直播创业者们更全面.深入地了解视频直播技术,更好地技术选型. 本系列文章大纲如下: (一)采集 (二)处理 (三)编码和封装 (四)推流和传输 (五)延迟优化 (六)现代播放器原理 (七)SDK 性能测试模型 本篇是<视频直播技术详解>系列的最后一篇直播云 SDK 性能测试模型,SDK 的性能对最终 App 的影响非常大.SDK 版本迭代快速,每次发布前都要进行系统的测试,测试要

华为云携手英方,助力新大正物业实现云上两地三中心

云平台宕机事件不断出现,这也让云灾备的热度居高不下. 传统的灾备更多的是基于物理层面进行,过多的依赖于硬件,对于云上的虚拟化平台并不友好.而英方基于操作系统层面的灾备方式在这样的环境下就表现出了更强的优势.比如对不同虚拟化平台的兼容性,对网路带宽的低依赖性,使得英方在云平台上的表现更佳优益,也进一步推进了英方与华为云的合作.多年的合作基础一直是英方和华为不断加深技术交流和沟通的基石.撇开业务上的相辅相成和企业愿景上的志同道合,在技术上,英方和华为的融合也会取得1+1>2的效果. 以不断完善的技术

【原创】时隔十年,再度审视Performance Testing,性能测试,Load Runner,和企业级性能测试解决方案

软件测试入行是2006年,最先学习的测试工具囊括了QTP,Test Director,Load Runner,Rational Robot,Rational Performance: 那时的操作系统是2003 和 XP,Vista还用不起,微信还没诞生,QQ正壮年,嗯IE6正牛,Firefox也挺好的,Chrome还没听过呢: 那时我们没有云,没有虚拟化,没有笔记本,没有Mac,只有电脑城组装的单核AMD台式机(512MB内存): 当时软件测试工程师培训,需要缴纳2600的培训费,当时想那都是天