灵活应对流量压力,定期压测服务器,鹿晗结婚都不怕

商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处。 原文链接:http://wetest.qq.com/lab/view/340.html

热点来的太快就像龙卷风,明星的八卦总能作为事件引发热点。

10月8日,鹿晗与关晓彤恋情公布,瞬间上了热搜,粉丝炸了,微博的服务器也跟着瘫痪了。

微博瘫痪,让一位微博工程师在结婚的当口放下酒杯,开始扩容服务器,真是哭笑不得。更有网友吐槽,鹿晗其实是个老黑客,让众码农汗颜。

虽然微博这次瘫痪防不胜防,毕竟明星公布恋情如何预警?然而服务器准备不足也是一点。看看这条微博:顶级流量,可怕的传播层级,如下图所示...

聊完八卦,回归主题:服务器压力。所以你家的服务器还好么?虽不是所有产品都能像微博拥有亿万量级,但在产品预期范围内出现问题,那即便再精美的产品也无法留住用户的心。

一、先谈谈服务器相关的性能指标,有很多,但不可能全看,那么有哪些核心呢?

1、90%响应时间

是指所有用户的响应时间由小到大进行排序,第90%的响应时间,是用来评估系统容量的重要指标之一。

2、TPS性能,关注服务器的服务能力

每秒系统处理事务(通过、失败以及停止)的数量。通过它可以确定系统在任何给定时刻的时间事务负载。

3、支持的最大在线人数

指同时登录站点的最大人数或者服务器同时接收下载的最大数量。

4、服务器自身压测过程总CPU、内存等的变化情况

CPU利用率是指:CPU执行非系统空闲进程的时间/CPU总的执行时间;内存占用率指的是此进程所开销的内存。

5、事务成功率

事务成功率=成功处理的事务/所有事务*100%,是检测服务器处理事务成功几率的重要指标。

二、市面上有哪些服务器压测方法

为了能够帮助用户更快捷的获得服务器的核心数据,市场产生了诸多各式各样的压测方法,但也存在各式各样的问题:

1、现网数据预估

根据压力测试过程中的部分数据,对未来大量用户访问的情况机型预估。

存在问题:只适合简单的服务器拟合,复杂服务器数据就不太准确。

2、真人压测

通过邀请一定数量的真实用户来玩游戏,从而对服务器达到一个测试效果。

存在问题:暴露出的性能问题有限,封测人数通常还是太少,虽然有几百或者几千用户在玩,但是并发并不够,不足以暴露服务端性能问题;另外不适合调优,真人无法完全重复相同行为,服务器就难以进行回归调优。

3、接口测试

选择一些具有代表性的功能,通过以小见大的方式,来评估整套服务器性能。

存在问题:无法遍历整个服务器的接口,难以避免一些微小的问题。

4、录制回放

通过抓取数据包的方式,来获取游戏时的协议,再把这些捕获的协议重新发送给服务端,通过工具放大协议量级达到性能测试的目的。

存在问题:面对复杂的协议交互,单纯的放大数据包,无法产生足够压力。

5、机器人模拟

通过高还原真实玩家的用户行为,模拟高并发场景,从而得到类似很多人同时游戏的测试效果。

这些方法各有优劣,腾讯内部普遍使用“机器人模拟”的方法进行压测,而“机器人模拟”的压测方法需要充足的测试时间和很大的人力投入,为此腾讯制定了一个较为通用的测试流程,用以提升压测效率。

三、腾讯内部服务器性能的测试流程介绍

根据腾讯内部游戏和产品的使用需求,腾讯WeTest团队首先针对http与https协议的页面,梳理了一个通用的压测流程。

1、 确定压测场景,比如登录,获取信息列表等

测试人员第一步要做的就是测试方案的确认,主要就是提前模拟实际业务中涉及的场景以及场景中用户的使用行为,通常需要确认这样几点:

1) 确认用户的登录状态,用户的登录态是否会不断变化

2) 用户登录后的访问路径之间的上下文关系

3) 访问路径之间的参数传递关系

2、 测试人员编写测试用例

编写测试用例就是将上述模拟场景具体化的过程,包括确认压测的人数,人数递增逻辑,具体需要压的接口,接口之间的参数传递等。

3、 启动机器人进行测试,渐进增加机器人数量

在确认了测试方案后,这一步就是执行的过程,根据测试方案中预估的压力人数,渐进的增加压力的人数。

4、 记录分析数据及事务处理情况,查看服务器负载的变化以及服务器的当前承载能力。

上一步提到了要渐进增加机器人,那么为什么要渐进增加机器人?因为在服务器并发增加的过程中需要不断监控上文服务器的核心数据,不断挑战服务器处理能力的极限,避免上来就使用一个过高的并发数直接超过了服务器处理能力的极限,从而无法起到性能优化的目的。

一般来说,在机器人增加的过程中,CPU的突然跑满以及响应时间瞬间变长,都可能是服务器产生了瓶颈。因此压测人员需要实时监控压测上升过程中的服务器情况变化,从而定位问题所在。

5、 调整配置,迭代测试,预估服务器的承载能力以及可能存在的性能瓶颈

在发现基本的测试问题后,测试人员需要通过不断的调试来定位问题,然后重新发起压测,知道实现最终的测试目的。

根据这个测试流程,腾讯内部也总结了一些压测产品所需要具备的特点。

1) 简单易上手

产品的业务场景是多变的,但是好的压测产品应该让这个场景配置过程变得简单易用,用户在简单输入需要压测的URL即可进行各个接口的测试,大部分测试配置建议提供一个默认值,用户对功能更加了解之后可以自由配置这些参数。

2) 进阶功能完善

除了简单易用之外,也要给用户提供一些进阶的功能,在简单输入URL的基础上,可以支持用户自定义变量,从文件读取变量,甚至从其他URL的返回值获取变量的值,可以比较真实模拟真实场景,避免请求变量单一。

3) 提供分布式压力机进行压测

由于单机的局限性,压测产品可以使用分布式压测的框架,根据用户配置的机器人数量动态分配多个压测机,极大提升压力上限。

4) 详细的测试数据统计

压测大师会记录测试过程中的多项数据,包括在线人数变化、TPS变化、响应时间、收发包流量、服务器CPU内存状态、压力机硬件负载、测试结果统计等,可以快速定位服务器的容量以及瓶颈。

基于这些需求,腾讯WeTest团队开发了专注服务器压测的产品“压测大师”,简化了压测配置过程,用户可以在线上部署,线上调试,线上查看报告,帮助用户成为最高效的“压测大师”。

WeTest压测大师旨在降低开发者在服务器性能测试方面的门槛,迅速发现服务器端的性能瓶颈,进行针对性的性能调优,降低服务器采购和维护成本,提高用户留存和转化率。目前主要优势如下:

Ø 一分钟发起测试,无需编写脚本

Ø 无需配置压力机,随开随用,轻松发起十万压力

Ø 支持HTTP、HTTPS等协议,覆盖Web,H5,APP,游戏等主流场景

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

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

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

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

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

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏飞雪无情的博客

GitHub上优秀的Go开源项目

近一年来,学习和研究Go语言,断断续续的收集了一些比较优秀的开源项目,这些项目都非常不错,可以供我们学习和研究Go用,从中可以学到很多关于Go的使用、技巧以及相...

2275
来自专栏云计算D1net

管理混合云和多云:代理或无代理?

导语 混合云在节省更多IT成本方面提供更多的潜力,并将这些成本节约转向改善业务成果,但却带来了一些独特的挑战。人工手动的流程在一个混合的世界变得难以管理,因为云...

34110
来自专栏云计算D1net

私有云管理工具大比拼

本文,我们将对业内领先的第三方私有云管理工具进行比较,并为你的环境选择提出正确的建议。 随着越来越多的企业采用了私有云,对于相关管理软件的需求也变得迫切而明显。...

3764
来自专栏养码场

前1号店技术总监黄哲铿揭秘:微服务架构在千万级别日调用量、亿级别海量数据场景下的应用实践

上周,前1号店技术总监、海尔农业电商CTO,《技术管理之巅》作者黄哲铿为大家带来了一场关于微服务架构的分享,包含了微服务架构在千万级别日调用量、亿级别海量数据场...

902
来自专栏AI研习社

如何在微服务架构下构建高效的运维管理平台?

黎明带领团队自主研发了全栈 DevOps 运维管理平台—EasyOps,是目前行业领先的智能化运维管理平台。作为前腾讯运维研发负责人,黎明主导了多个运维系统研发...

3659
来自专栏程序员的知识天地

提升 Web 应用的代码质量【干货持续输出】

Web 应用的质量提升,是一个非常有意思的话题。我们明知道有一系列的手段可以提升代码质量,但是限于多种原因,我们并不会去做。在我工作的第一个项目里,由于大家都是...

621
来自专栏云计算D1net

混合云/多云环境如何部署微服务

微服务能够为混合云或多云部署带来大量的好处,但是它们也能够带来与网络、安全性等相关的新挑战。 ? 大多数IT企业已经开始认识到在开发和部署中实施软件组件化的好处...

3419
来自专栏架构师小秘圈

微服务之数据架构

作者:陈伟荣 来自:在GitChat 中分享的【微服务开发中的数据架构设计】 前言 微服务是当前非常流行的技术框架,通过服务的小型化、原子化以及分布式架构的弹性...

3607
来自专栏双十二技术哥

GMTC移动开发者大会纪实(二)组件化只是一句口号吗

到了17年的今天,组件化实在不会是一个新名词。各种关于组件化、模块化的讨论层出不穷,具体实践方案也历经了好几代的演进,到了现在甚至已经有完善的组件化框架类如Sm...

1154
来自专栏架构师之路

从IDC到云端架构迁移之路(GITC2016)

大家好,很高兴来到GITC2016的舞台,我是来自58到家的沈剑,今天我分享的主题是《58到家从IDC到云端架构迁移之路》。 机房迁移是一个很大的动作: 15年...

3325

扫码关注云+社区