前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >腾讯自己的直播答题,如何实现稳定的性能输出

腾讯自己的直播答题,如何实现稳定的性能输出

作者头像
WeTest质量开放平台团队
修改于 2018-10-30 08:04:01
修改于 2018-10-30 08:04:01
1.3K0
举报

作者oliver, 腾讯压测大师团队产品经理

商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处。

WeTest 导读

对症活动上线服务器崩溃,有疗效。

项目背景

2017年下旬开始,“直播答题”活动突然在各大直播,短视频应用集中的开展了起来,动辄上百万的奖金吸引了大量用户的参与。主要的玩法是,主持人出选择题,然后用户会收到题目,然后选择答案。大家都选择完后,主持人公布答案。12道题一场,答对题目才能进入下一题作答。12题结束后公布结果全部答对的人数,发放奖金。一场直播每人可以分到几十元甚至百万元,越来越多的人希望用自己的智商赚点零花钱。

直播答题有多火?多个直播平台服务器多次遭到宕机。就传统视频直播而言,直播间通常在线用户人数是少几万人,通常情况下超过五万的不多。而对直播答题来说,直播间在线用户人数超过百万那是很平常的事情,某一线直播平台旗下的直播答题直播间在线人数更是突破了五百万人。而且所有用户都是在活跃答题的,这是传统视频直播不曾面对过的压力。

实际上,许多APP在上线之初,完全不了解自己可能承受多大的并发,他们或许还没有想到自己会火得这么快。很多APP也就因此出现了在线用户无法进入游戏、技术故障导致游戏被迫临时取消等情况。

腾讯NOW直播也在自己的平台上开发了答题玩法——”全民闯关”,为了能够避免出现各大直播答题平台出现的性能问题,让答题活动能够顺利的赶上风口,实现优质的产品服务,NOW直播的测试团队与腾讯WeTest压测大师进行了合作,对“全民闯关”活动进行了系统的压测,腾讯WeTest压测大师也将其整理成了“在线知识竞技压测解决方案”。

一、业务流程

直播答题活动在业务流程中,主要体现为以下几个重要节点:

1.用户进入直播间

2.主持人发出派题指令;

3.题目信息通过网络送达给用户;

4.用户通过网络拉取题目信息;

5.如题目信息包含完整内容,则下一步,如果只有题目 ID,则到业务服务器查询题目内容;

6.用户把题目答案提交给答题统计分析服务器,同时得到标准答案反馈;答题统计分析服务器是分布式的集群,统计答题结果,反馈给主持人;

7.答错的用户进入复活卡使用的选择,服务器判定是否可以进入下一题

8.答题结束,进入结算页面,服务器反馈结算结果

NOW直播“全民闯关”活动业务逻辑

测试需求的产生——寻找高并发节点

NOW直播所测试场景的流量主要来自于手机QQ,跳转到H5形式的活动页面。

在活动发起的一开始,NOW直播方面发现整个功能在三个节点的服务器压力特别大,很容易出现服务器不稳定的问题,分别是“准点进入直播间”、“公布问题答案”以及“激活复活卡”。

准点进入直播间

公布问题答案时间

激活复活卡时间

二、技术挑战点——初步排查问题

除了显而易见的几个高并发节点,NOW直播团队发现DAU的上升不仅会给产品活动页面产生“直接压力”,也会对产品的其他节点也带来“间接压力”,为了能够找到这几个高并发节点产生问题的原因并进行优化,NOW直播方面初步排查到以下几点:

1、 直接压力:

答题类CGI可能同时触发,带来压力;DAU的上升会给原有房间CGI带来压力;

2、 间接压力:

DAU的上升会给“附近”、“发现”CGI带来压力。

实现方案

为了能够通过系统的压测排查产品CGI中存在的问题,NOW直播团队制定了详细的压测计划,包括测试前的准备工作,测试目标的制定、测试分析、测试用例配置以及问题的优化。

一、测试前准备

1、收集CGI及配置

收集本次测试需要覆盖的CGI以及相关的配置,包括Header的参数、cookie是否带登陆态,CGI之间是否有前后顺序或依赖关系,需要与开发对齐每条CGI的配置。

2、获取白名单的登陆态

对于需要含登陆态的CGI,需要有一批测试号,通过这些号的登陆态去访问CGI。

3、分析业务场景

1)与产品确定本次预计的最高在线人数;

2)判断是否业务并发场景,如同时拉活动主页等并发场景,需要以最大在线人数去测试,如果非并发场景,可以与开发产品一起评估按一定的量去压测。

二、制定测试目标

根据与产品的沟通,确认此次压测的实际目标,NOW直播测试团队与产品方面确认的压测目标如下:

预估灰度量级:PCU:15W左右

压测标准:并发人数:10W

通过标准:

● 成功率>95%;

● 平均TPS 大于10W;

● 90%响应时间<1000ms.

三、测试前分析——挖掘直播答题压测主要痛点

根据之前初步问题的排查,NOW直播测试团队首先需要整理进行系统压测的所有接口,具体接口情况如下图:

NOW直播为“全民闯关”活动准备实施压测的所有接口

为了能够帮助“全民闯关”在压测后迅速定位到服务器存在的问题,实现快速的性能优化。

“在线知识竞技压测解决方案”所需要解决的主要痛点在于以下四点

痛点一:根据业务需求确认需要压测的CGI

测试团队在测试前要确认需要进行压测的关键CGI,监控其数据表现;

痛点二:模拟用户真实登录状态

“全民闯关”需要用户有真实的登录状态,压测的请求可以真实模拟用户的访问状态;

痛点三:满足TPS梯级增长的增长模型

“全民闯关”需要模拟用户的增长模型,实现用户不断增长的场景,了解服务器能够承受服务的量级;

痛点四:帮助开发迅速定位前后端问题

在获取了压测后的详细结果后,测试团队要通过这个结果帮助开发团队迅速定位问题,迅速进行性能优化。

四、选择测试工具——压测大师

根据“全民闯关”压测的功能需求,压测大师提供了针对性的功能服务,内容包括:

1、支持压力梯级配置,一分钟发起十万级并发压力

2、支持上下文变量,实现真实模拟用户登录状态

3、实时查看测试报告,多维度报告对比,迅速定位性能瓶颈

压测大师也通过这些能力,驱动腾讯云压力机集中访问NOW直播服务节点,长连接建立完成高并发用户发送登录验证信息到后端服务器,后端服务回送验证信息,真实模拟“全民闯关”活动“登录”、“进房”、“拉取房间信息”、“拉取活动首页”、“拉取成员列表”等场景,实现系统性的压测。

五、测试流程与方法

为了保证答题的每个CGI都能够满足足够的承载能力,NOW直播测试团队选择的测试方式是通过对单CGI进行压测,每个CGI实现10W的并发。

而在压测大师进行用例配置时,NOW直播测试团队的操作如下:

1、创建项目及测试用例

1)QQ登录http://wetest.qq.com, 选择产品-性能测试-服务器性能;

2)可以选择创建新项目,或者可以让已有项目负责人帮添加权限,然后点击进入项目。

3)点击创建测试用例;

或者点击测试用例,复制已有的一条进行编辑;

4)编辑完成(详细的编辑见下文),在最下面点击调试,这时会先发一条,然后查看结果;

看响应交互状态及响应body是否正常。

如果是“飘心”或者“发言”,可以在对应的房间看是否有出现效果。

(5)然后可以选择小数量运行看一下结果,在运行大数量之前,需要通知对应的后台一起关注,以防止压垮服务器后能及时发现,并停掉压测及紧急修复。

这里可以选择立即执行及定时测试。(注意错开高峰时间段压测,以避免影响到现网业务)。

2、测试用例编辑

1)发包设置——梯次配置,注意设置合理的超时时间

起始人数设置为10000人:NOW直播方面了解服务器方面至少可以满足10000人的并发,直接从10000开始验证服务器的容量,因此将起始人数设置为10000人。

每阶段增加人数10000人,每阶段持续时间30s,最大人数10W人:NOW直播测试团队希望在5分钟内把压力提升到10W,选择每30s提升10000人;这类缓慢加压的方式,可以逐渐发现压力在某个量级出现问题,可以迅速了解服务器承载能力的瓶颈所在。

发包间隔时间为100ms:发包间隔主要决定了压力机方面多久发出一个包,一般默认为0ms,即不断的发包,考虑到服务器的回包能力,可以适当的增加发包的间隔,NOW直播测试团队方面把发包间隔设为了100ms。

超时时间设置为3000ms:超时时间设置很重要!!!超时时间决定了测试报告对结果的判定,如果服务器的响应时间超过了设置的超时时间,就会视作超时,因此超时时间一开始可以稍微设置的长一些,避免很多正常的收发包被视作了超时。

发包模式选择为“长连接”:“长连接”是相对于“短连接”而言,建链之后不会马上断开,继续保持数据传输的关系,用户可以根据实际的连接需求进行选择。

NOW直播测试用例的配置

2)客户端请求——巧用“上下文变量”,真实模拟用户登陆态

NOW直播测试项目中,根据实际需求主要分成两类,一类不需要实现登陆态,一类需要实现页面的登陆态以真实模拟用户访问接口。

a)不需要登陆态,以获取答题信息CGI为例,添加header:

b) 需要登陆态,需要通过压测大师的“上下文变量”进行参数传递。需要先发一条CGI申请一个带登陆态的号码,再去做下一步操作,以“进房”为例。

通过在“客户端请求”选择“上下文变量”,在其的response body里提取uin及skey;再将uin及skey放置在下一步CGI header的cookie里。

通过“上下文变量”功能,将上文body信息传输到下文header的cookie中。

3)测试模型——配置各CGI压力部署

a) 不需登陆态的CGI,一般选择“单场景”,如果是想看单条CGI的性能,就配置单条,如果想看多条并发性能,配置多个场景与压力百分比。

b) 需登陆态的CGI,需选择“上下文”;

点击上面的压测场景下的CGI,可配置多条CGI的配置顺序;

4)报告标准阈值——直观了解测试结果是否通过

设置阈值后,测试报告会直观体现测试是否通过。

六、测试结果分析

1、如何查看报告

1)查看问题及建议:

可针对对应的问题,与开发沟通是否服务器存在瓶颈。

2)查看概况中的在线人数,看是否与设置的符合。如果在线人数低于预设的人数,即服务器可能无法承受那么大的并发数。

3)查看事务数据中的TPS及响应时间。

最终效果

通过对NOW直播“全民闯关”活动的主要接口进行压测之后,得到了初步的数据,NOW直播方面发现后台服务器没有利用到多核机器,Spp的proxy只利用到了单进程单线程,因此通过对单台八核机器部署了6个进程,从而实现了各接口TPS提升了100%左右。

NOW直播“全民闯关”活动主要接口压测数据

(具体数据隐去)

从数据上看,风险可控。

NOW直播测试团队通过对“全民闯关”完成了压测之后,通过提升后台服务器的利用率,将TPS提升了一倍多,并根据在测试环境的压测情况,对线上环境进行了针对性的扩容,在实际上线后,也承载住了线上的压力。

关于压测大师

WeTest压测大师服务了包括王者荣耀、QQ飞车手游、QQ炫舞手游等多款高星级手游, 也服务了QQ、NOW直播、摩拜单车、企鹅FM等明星产品。

此次推出”在线知识竞技压测解决方案“,实现用户瞬时进入房间,拉取题目信息等场景,并真实模拟用户登录状态,帮助开发者真实模拟直播答题用户使用场景,帮助开发者发现服务器端的性能瓶颈,进行针对性的性能调优。在保证用户流畅体验的同时,也能降低服务器采购和维护成本,实现用户与开发者的技术共赢!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-04-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯WeTest 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
腾讯自己的直播答题,如何实现稳定的性能输出
原文链接:http://wetest.qq.com/lab/view/377.html
WeTest质量开放平台团队
2018/04/19
2.5K3
腾讯自己的直播答题,如何实现稳定的性能输出
3小时超6000万成交额,腾讯压测大师如何助力零售直播?
导语   3月25日,潮宏基携手腾讯打造的首个珠宝行业小程序&视频号公私域联动直播创下了6213万GMV,直播观看量超120万,互动量超850万的新记录。这场直播为何能获得如此巨大的成功呢?其秘诀之一就是潮宏基背后的神秘外援——腾讯WeTest压测大师专家团队的倾力支持。   无论是前期公私域流量的打通,还是直播过程中引导用户裂变,每一个环节都少不了稳定的线上系统支持。近两年来,李佳琦、薇娅等网红让直播带货这种全新的零售模式火遍全国,虽然热门直播给商家带来了高流量、高收入,但同时也让商家面临着更大的挑
WeTest质量开放平台团队
2021/04/08
1.1K0
手把手教你测微信小程序
WeTest 导读 在小程序持续大量爆发的形势下,现在已经成为了各平台竞争的战略布局重点。至今年2月,月活超500万的微信小程序已经达到237个,其中个人开发占比高达2成。因小程序的开发门槛低、传播快、收益高,越来越多的开发者投入了小程序这一领域,由于整体开发水平层次不齐,会碰到越来越多的小程序质量问题。特别是面对电商、零售、旅游、直播等容易有高并发量的行业,会出现“服务器崩溃”、“访问响应缓慢”、“页面操作卡死”、“支付提交失败”等性能问题。那么,应该如何做小程序服务器压测呢? 接下来,我们将以电商
WeTest质量开放平台团队
2019/05/16
1.4K0
手把手教你测微信小程序
腾讯WeTest压测大师通过中国计量科学研究院测试认证,获国家级权威认可
  2021年7月,腾讯WeTest服务器性能测试产品压测大师通过中国计量科学研究院测试认证,获国家级权威认可,兹认定“腾讯 WeTest 压测大师是一款全链路服务器性能测试产品,支持百万级别并发,可灵活构建压测场景链路,一键查看各项性能指标, 实现压测全流程闭环。”   “国家计量器具软件测评中心(以下简称NMIST)是由国家市场监督管理总局授权,依托中国计量科学研究院为母体而建设的国家级检测中心,承担起草有关计量软件测评与测试的国家计量技术规范,研究计量软件测评方法和防作弊技术,开发计量软件测评工
WeTest质量开放平台团队
2021/08/23
1.1K0
Now 直播应用的后台服务器性能测试实践
WeTest质量开放平台团队
2016/11/01
5.5K5
Now 直播应用的后台服务器性能测试实践
远离服务器宕机,腾讯WeTest正式推出服务器深度性能测试服务
随着城市发展趋向智慧化,不仅移动互联网应用正迅速融入出行、金融、医疗、娱乐等传统行业,跟随移动互联网成长起来的,还有用户对应用使用与消费的理性意识。
WeTest质量开放平台团队
2018/10/29
1.6K0
日活上百万时,腾讯产品如何提前规避服务器宕机风险?
文章主要讲述了如何利用腾讯云云函数(SCF)和Serverless无服务器架构,实现高性能、低成本、免运维的腾讯云函数计算服务(Tencent Cloud Function,TCF),以及如何通过Serverless架构实现极致弹性、极致伸缩、极致效率,为企业节省成本,提高效率,帮助更多企业快速实现业务价值。同时,文章还介绍了腾讯云云函数(SCF)和Serverless无服务器架构的原理、特点、优势、适用场景、典型客户案例以及如何使用等内容。
WeTest质量开放平台团队
2017/05/15
1.8K0
日活上百万时,腾讯产品如何提前规避服务器宕机风险?
日活上百万时,腾讯产品如何提前规避服务器宕机风险?
众所周知,优异的应用性能是良好用户体验的坚实基础,而服务器响应缓慢、卡顿、崩溃的产品,即便设计再精美也无法留住用户的心。
WeTest质量开放平台团队
2018/10/29
8900
一分钟配置的“黑科技”,腾讯云独家开放云压测能力
腾讯游戏云
2017/12/26
1.8K0
一分钟配置的“黑科技”,腾讯云独家开放云压测能力
WeTest压测大师升级了,1分钱畅快压测
  WeTest压测大师自助压测全新发布啦,这是一款简单易用的服务器性能测试平台。在WeTest控制台上,最快几分钟即可完成用例配置,同时各种进阶配置项也可满足您复杂业务压测的需求。此外,平台实时产出详尽的测试报告,您可以在控制台上监控各项核心性能指标,定位问题瓶颈。 产品亮点 参数化配置效率高 可视化参数配置,新手易操作,无技术门槛。 全链路构建真实场景 支持接口传参构建上下文链路场景 支持自增、定长、读取文件等多种变量 支持按场景分配压力大小,更贴近现网 支持检查点等功能 报告实时查
WeTest质量开放平台团队
2021/07/29
2.2K0
“军装照” 背后:天天 P 图如何应对 10 亿流量的后台承载
本文主要介绍了如何通过腾讯云和腾讯WeTest平台,对H5页面进行压力测试,以解决页面卡顿、加载缓慢等问题。首先介绍了H5页面的特点和问题,然后详细阐述了基于腾讯云和WeTest的H5压力测试方案,最后通过具体案例展示了该方案的可行性和优势。
WeTest质量开放平台团队
2017/08/10
2.5K0
“军装照” 背后:天天 P 图如何应对 10 亿流量的后台承载
疫情催生的行业火热背后,WeTest解决的质量难题
原文链接:https://wetest.qq.com/lab/view/486.html
WeTest质量开放平台团队
2020/02/26
1.2K0
疫情催生的行业火热背后,WeTest解决的质量难题
远离服务器宕机,腾讯WeTest正式推出服务器深度性能测试服务
原文链接:https://wetest.qq.com/lab/view/415.html
WeTest质量开放平台团队
2018/10/24
1.5K0
远离服务器宕机,腾讯WeTest正式推出服务器深度性能测试服务
想做 iPhoneX 抢购活动?压测大师先教你优化网站后台
本文主要介绍了一种网站页面加载性能测试方法及装置,该方法包括:生成测试用例,包括测试场景、测试请求、测试参数和测试结果;根据测试用例发起测试,并收集测试结果;对测试结果进行统计分析,得到统计分析报告。该装置包括:测试场景模块、测试请求模块、测试参数模块和测试结果收集模块。该方法可以迅速发现服务器性能的瓶颈,并加以修复,保证页面在活动当天可以承载足够的压力,完成一个成功的活动。
WeTest质量开放平台团队
2017/09/19
2.1K0
想做 iPhoneX 抢购活动?压测大师先教你优化网站后台
前端学Serverless系列--性能调优
Serverless云函数的优点是支持高并发,理论上无限自动扩容,但也有其自身的缺点,如冷启动特性导致冷启动的时延比较高。那么实际上性能如何,是否还有性能优化的空间和手段呢?
腾讯云serverless团队
2019/06/21
10.3K0
双十一临近,怎样让买家流畅地秒杀? ——腾讯 WeTest 独家开放电商产品压测服务
WeTest质量开放平台团队
2017/11/01
2.1K0
双十一临近,怎样让买家流畅地秒杀? ——腾讯 WeTest 独家开放电商产品压测服务
想做iPhoneX抢购活动?压测大师先教你优化网站后台
北京时间9月13日凌晨1点,iPhone 10周年,在Apple Park乔布斯剧院,苹果发布了三款新iPhone。全面屏iPhone X来袭,这款被定义为未来的智能手机黑科技满满:全面屏,无线充电、面部识别“Face ID”以及跟踪你脸部动作的Animoji。和往年的苹果秋季发布会一样,发布会在开始之前就获得了极高的关注,苹果官网也会承受极大的并发压力,看看往年的情况:
WeTest质量开放平台团队
2018/10/29
1.5K0
手把手教你测微信小程序
原文链接:https://wetest.qq.com/lab/view/451.html
WeTest质量开放平台团队
2019/04/20
9510
手把手教你测微信小程序
灵活应对流量压力,定期压测服务器,鹿晗结婚都不怕
本文介绍了服务器性能测试的基本流程和常用的测试方法,以及腾讯WeTest压测大师在服务器性能测试方面的应用。通过压测大师,开发者可以快速发现服务器性能瓶颈,降低服务器采购和维护成本,提高用户留存和转化率。
WeTest质量开放平台团队
2017/10/12
1.3K0
灵活应对流量压力,定期压测服务器,鹿晗结婚都不怕
三年同行,质造未来,腾讯WeTest五大服务免费体验
原文链接:https://wetest.qq.com/lab/view/414.html
WeTest质量开放平台团队
2018/10/24
1.3K0
三年同行,质造未来,腾讯WeTest五大服务免费体验
推荐阅读
相关推荐
腾讯自己的直播答题,如何实现稳定的性能输出
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档