测试的目的在于知道机器最大可以抗压多少流量,并找出薄弱环节进行优化。
在测试后要进行容量规划,目的在于让每一个业务系统能够清晰地知道:什么时候应该加机器、什么时候应该减机器。当节日时候业务增长,准确的预估将节省很多资金,并让业务不会被流量击倒。
容量规划分为几个阶段:
单链路: 对单台机器进行测试,通过ab等测试工具进行单台机器的不同页面并发量测试。观察web服务器的压力和负载情况
如何测试单台机器:
全链路: 基于实际的生产业务场景、系统环境,模拟海量的用户请求和数据对整个业务链进行压力测试,比如购物平台是nginx反向代理,后端为java程序,在测试中,模拟用户登录账号,选购商品,加入购物车,付费。这样对整个链路进行测试,在观察中,要对每个环节都进行观察,找出薄弱和反应慢的节点。
为何要进行全链路测试?因为单台测试再好,在一个业务的链路上,有一个下游系统出现了问题,响应时间变得很长。这个问题在链路上会被放大,甚至导致整个链路不可用。所以也要进行流控,当一个应用响应的时间超过阈值,我们可以认为这个应用不可控,应该迅速将它降级。
如何测试全链路: 全完模拟用户对网站或者app发起请求,登陆–选购–购买。对于模拟请求的方式,需要考虑脏数据的处理方式。全链路压测的所有数据都在生产环境做了数据隔离,包含存储、缓存、消息、日志等一系列的状态数据。在压测请求上会打上特殊的标记,这个标记会随着请求的依赖调用一直传递下去,任何需要对外写数据的地方都会根据这个标记的判断写到隔离的区域。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。