日活上百万时,腾讯产品如何提前规避服务器宕机风险?(2)
发表于:2017-05-15来源:腾讯作者:腾讯点击数:
标签:腾讯
4 、服务器自身压测过程总CPU、内存等的变化情况。 CPU利用率是指:CPU执行非系统空闲进程的时间/CPU总的执行时间;内存占用率指的是此进程所开销的内
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即可进行各个接口的测试,大部分测试配置建议提供一个默认值,用户对功能更加了解之后可以自由配置这些参数。
原文转自:http://www.ltesting.net/ceshi/news/itdongtai/2017/0515/208439.html