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

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

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

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等明星产品。

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



目前WeTest压测大师对外开放中,点击链接:http://wetest.qq.com/gaps/”即可使用。

如果对使用当中有任何疑问,欢迎联系腾讯WeTest企业QQ:800024531

原文地址:https://www.cnblogs.com/wetest/p/8889771.html

时间: 2024-10-09 15:16:22

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

小程序直播功能开发经过 开发直播小程序的过程 微信直播小程序 直播答题小程序开发 小程序怎么做直播

公司要开发一个直播的小程序,现在直播小程序应用场景也很多.比如电商的直播,在线直播购物下单.还有就是一些教育类的,小程序直播答题.也研究了下微信小程序的直播文档,然后百度也搜了下各位前辈的开发历程.这里我总结下我开发的一些经过. 首先你要注册好一个你的小程序,然后申请小程序的类目,只要下面这些类目你能申请到就可以开通小程序的直播功能.然后就开始开发啦. 如下是微信小程序的要求: 暂只针对如下类目开放,需要先通过类目审核,再在小程序管理后台,"设置"-"接口设置"中自

小程序开发之socket编程 小程序直播答题开发的直播弹幕使用web socket编程

最近有一个项目很火,那就是直播答题的,接到公司的这个任务,开发直播答题的聊天室功能.在线的人相互聊天.之前做过类似的,当时都是使用的ajax轮询的,这种非常的耗费服务器.所以这次就开始使用socket来做,我主要负责后端开发,主要就是配合前端做一些接口. 小程序前端使用微信的空间 wx.connectSocket  做好相关的wss配置,然后我这边使用PHP来做socket 服务读写. 公司采用的是gateway worker 具体不多说,大家可以看他的文档哈,我就直接上代码了 GatewayW

直播答题类APP成都麦鱼科技的开发解决方案

直播答题APP应用请添加链接描述是互联网+下的产物,它精准的抓住目标用户需求,通过答题的方式来吸引用户眼球,让用户的生活变得更加有趣,从而成为平台的忠实粉丝.新年伊始,冲顶大会.芝士超人.百万英雄.百万赢家等多款同类型答题APP的迅速走红,使得既能涨知识又能赢奖金的网络直播答题突然在网民中备受追捧,成为2018年互联网首个现象级事件.而各大答题APP动辄几十万甚至上百万元的"烧金游戏",也迅速在网络上圈粉无数,仅仅半个月左右的时间,就能吸引百万量级的粉丝在线答题.那么,如何做好一款直播

风起云涌的直播答题!不够快,你都没资格“撒币”!

要说2018年互联网第一大风口,无疑是席卷全民视野的直播答题,而随着王思聪一句"我撒币,我乐意",正式开启了全民直播答题的战场! 其实这一创新形态的直播产品,并非起源于中国,早在2017年8月,这一风口已在美国由HQ Trivia吹起. 2017年圣诞节,HQ Trivia同时在线用户数量创下73万人的记录,这也被嗅觉灵敏的中国互联网企业所关注,并快速复制到中国用户的面前,而由于裂变式的用户参与度,几大平台每次答题参与人数均达到了百万级别,同样,也衍生出了多种商业化模式. 目前已成型的

直播答题助手江苏快三平台出租

"世界杯要搞答题直播江苏快三平台出租Q 1152880099  vx: wowotou552  罔 www.1152880099.com/,搜狐准备了百万奖金." 这是近日搜狐董事局主席兼CEO张朝阳在接受媒体采访时,对外界透露的信息. 从今年年初开始,直播答题一路火爆不减. 然而,在众多平台蜂拥进入直播答题领域时,一些问题也逐渐暴露出来,其中,最受关注的莫过于各种辅助类作弊软件的出现. 就在答题者对"答题助手"还处于爱恨交加之际,一则新闻引爆舆论--"百

腾讯前端求职直播课——面试篇

主讲人:[email protected]石小勇(腾讯高级前端工程师,AlloyTeam核心成员之一,现主要负责腾讯QQ兴趣部落的研发设计工作) 1.闲聊前端 从移动Web时代开始,前后端分离之后,前端这个岗位才开始慢慢火起来 一线城市前端需求量大,但合格前端很少 2.大话面试 面试如相亲,为什么这么说? 五大要素 "颜"王 ①面试的第一印象: 守时(电话通畅,按时面试):干净利落(着装整洁大方对面试官的基本尊重) ②简历的第一印象: 突出优势(公司或者工作室实习的经验/主导或参与的开

网络直播软件APP开发稳定流畅

小程序视频直播系统软件,小程序视频直播软件开发,小程序视频直播平台开发,小程序视频直播程序开发,小程序视频直播商城开发,小程序视频直播技术开发. 开发咨询:185-2945-7803陈生(微电同号) 小程序系统 小程序视频直播系统是一个以直播和小视频内容引爆销售的全渠道营销工具,集小视频.直播电商.全渠道裂变分销.SCRM粉丝管理.深度数据分析为一体 帮助商家一分钟开设直播或小视频内容商店,一键跨平台并发将店铺同时开到微信.微博.QQ等社交媒体,全渠道裂变分销,精准运营粉丝社群,轻松激活消费者复

【腾讯Bugly干货分享】TRIM:提升磁盘性能,缓解Android卡顿

Bugly 技术干货系列内容主要涉及移动开发方向,是由 Bugly 邀请腾讯内部各位技术大咖,通过日常工作经验的总结以及感悟撰写而成,内容均属原创,转载请标明出处.在业内,Android 手机一直有着“越用越慢”的口碑.根据第三方的调研数据显示,有77%的 Android 手机用户承认自己曾遭遇过手机变慢的影响.他们不明白为什么购买之初“如丝般顺滑”的 Android 手机,在使用不到一年之后都会“卡顿”得让人抓狂!根据我们初步的测试数据,手机长期所使用产生的磁盘碎片可以使得磁盘的写入效率下降为

盘点2018上半年直播、短视频领域七大内容安全监管

上段时间新京报报道: ×××拟规定任何组织或者个人不得在互联网上以文字.图片.音视频等方式直播或者录播拜佛.烧香.受戒.诵经.礼拜.弥撒.受洗等宗教活动.任何组织或者个人不得在互联网上以宗教名义开展募捐,个人不得在互联网上讲经讲道. 随着直播.短视频等平台内容的爆发式增长,行业竞争也变得越来越激烈.面对愈演愈烈的竞争,各平台开始寻找新"出路",但在"吸粉"的路上,有些人开始"跑偏",引发了一些争议.相关部门对此进行了监管,以肃清不良内容产生的社会