前天晚上周杰伦新歌《说好不哭》上线,目前已经在qq音乐上有700百万的销售,相关的话题一直牢牢占据着各个平台的热搜榜,就连国外的油管上,也成为了点播第一的音乐mv,周杰伦的粉丝影响力果然已经遍布全球了。
其实上线当晚,苦苦守候的歌迷,为了第一时间听到杰伦的新歌,歌曲一上线就立刻购买,巨大的瞬间流量导致QQ音乐的服务器宕机了数分钟,很多网友的APP都提示500错误,大家都质疑qq音乐是否对这次运营事件做了预警。
不知道QQ音乐有没有对这次上线做性能预估,但是目前来看,即使做了还是低估这次的并发峰值,说白了,还是低估了那个最懂我们青春的人啊。
这就让我想起了,前几天的篮球世界杯,那场中国面对波兰的关键比赛,最后几分钟,腾讯视频挂了,画面加载不出来。很多人吐槽,会员白冲了,看个NBA总决赛都没这么卡。
感觉又在黑TX,谁让哪里都有的TX影子呢。
这两个虽然是不同的业务场景,但也代表典型的两个业务方向,一个是音频业务,一个是视频业务。尤其视频,已经是目前甚至是未来信息交互的主要形式,而视频业务对于带宽的要求会更高,相同并发下对CPU、内存的消耗也更多。
当人人都在谈论周杰伦的这次歌曲好不好听时,开发或者测试应该从这次事件中思考些什么呢?
性能测试的必要性?
1.由于信息传播的越来越方便,一条新闻,一场比赛,拿起手机随时随地都观看。并且,随着5G和物联网技术的发展,以后面对的性能需求和场景也会越来越多。
2.性能测试,是一个业务或者产品规模,由小变大必然要面对的测试流程。尤其BATJ这些大厂,随便一个应用,用户量都是亿级别,一个小的性能问题都是致命的,影响数百万千万级别的数据交易等。
3.随着各个企业的业务发展、用户访问量的增加,企业对于系统的稳定性要求也越来高,因为系统的性能体验将严重影响用户的留存,体验越好的企业才能获得更多流量,当然也能赚更多钱。
有一则统计报告,对于Web网站,1秒的页面加载延迟相当于少了11%的PV(page view),相当于降低了16%的顾客满意度。如果从金钱的角度计算,就意味着:如果一个网站每天挣10万元,那么一年下来,由于页面加载速度比竞争对手慢1秒,可能导致总共损失25万元的销售额。 Compuware公司分析了超过150个网站和150万个浏览页面,发现页面响应时间从2秒增长到10秒,会导致38%的页面浏览放弃率。
如何评估软件的性能?
性能测试有两个重要的指标:TPS和响应时间
TPS(Transaction Per Second) :每秒事务数,每秒处理的业务请求个数,性能测试最需要关注的指标。
TPS(吞吐量)和系统资源的关系:
- 上升阶段(Light Load):TPS随着并发用户数增加,线性增长,出现第一个拐点A时,为最佳用户并发数。
- 平稳阶段(Heavy Load):TPS随着并发用户数的增加而保持稳定,无太大变化或波动,直到出现拐点B,系统所能接受的最大并发数。
- 下降阶段(Buckle Zone):TPS随着负载的增加而下降,用户的等待时间快速延长。
但其实,作为用户,才不管你的TPS是多少,他们感受的真正指标是响应时间。
响应时间:用户发出一次请求到收到响应的完整时间。
想想我们双11秒杀的时候,已经关注很久的商品,半天刷不出来,等到加载出来时,库存变成了0。每逢过节在12306上买票时,为了刷个票,等了半天页面加载不出来,页面加载出来时,余票为0,不由得感叹,时间都去哪了。
当然了,不管对于大厂还是中小型企业来说,遇到用户不可控的爆发访问,导致性能问题在所难免,但是我们需要在这样的事件中分析出问题的根因。是后端系统架构的影响,还是服务器资源的限制,或者前端框架的制约。
出事故不怕,就怕在同一个问题上反复出事故,第一次或许用户可以理解,重复出现,不仅会对于业务营收有影响,更会严重影响用户对于产品的忠诚度和信任感。