23 | 稳定性实践:容量规划之压测系统建设
赵成
该思维导图由 AI 生成,仅供参考
容量规划离不开对业务场景的分析,分析出场景后,就要对这些场景进行模拟,也就是容量的压力测试,用来真实地验证系统容量和性能是否可以满足极端业务场景下的要求。同时,在这个过程中还要对容量不断进行扩缩容调整,以及系统的性能优化。
今天,我们就来看压力测试的技术实现方式:压力测试系统的建设。我们详细讲讲压力测试的几个维度。
第一个维度,压测粒度
压测粒度上,我们一般会遵照从小到大的规律来做。
1.单机单应用压力测试
优先摸清单个应用的访问模型是怎样的,再根据模型进行单机单应用压力测试。这时我们就可以拿到单个应用和单个应用集群的容量水位,这个值就是后续我们根据业务模型分析之后扩容的基础。
2.单链路压力测试
获取到单个应用集群的容量水位之后,就要开始对某些核心链路进行单独的压力测试,比如商品详情浏览链路、加购物车链路、订购下单链路等等。如下图的交易下单链路压测模型示例,连线上的数字是不同应用或接口调用的流量占比。
3.多链路 / 全链路压力测试
当单链路的压测都达标之后,我们就会组织多链路,或者全链路压测。多链路本质上就是多个单链路的组合,全链路就是多链路的组合。如下图就是多个交易场景的多链路组合。
第二个维度,压测接口及流量构造方式
接口一般分为 HTTP 接口和 RPC 接口,这一点应该不难理解,就不做过多讲解了。
流量构造方式上,根据压测粒度的不同,会采用不同的方式,我们常见的有以下几种方案。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
容量规划是建设压力测试系统的关键环节,通过对业务场景的分析和模拟压力测试,可以验证系统容量和性能是否满足极端业务场景的要求。文章从压测粒度、压测接口及流量构造方式、施压方式和数据读写四个维度详细介绍了压力测试系统的建设。在压测粒度上,从单机单应用压力测试到多链路/全链路压力测试,逐步深入模拟业务场景。在压测接口及流量构造方式上,介绍了线上流量回放、线上流量引流和流量模拟等不同方式。施压方式方面,通过配置压测场景、构造压测数据和施加压力流量实现对线上系统的压测。在数据读写方面,特别强调了对写流量的特殊处理,以避免对线上数据造成污染。整体而言,文章详细介绍了容量规划和压力测试系统的技术实现方式,为读者提供了全面的技术方案和建设思路。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《赵成的运维体系管理课》,新⼈⾸单¥59
《赵成的运维体系管理课》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(8)
- 最新
- 精选
- Alpha张少宇赵老师,请问session放在cookie中,安全性如何处理?
作者回复: 只针对有压测标的测试请求做这样的处理
2018-03-272 - 陈文凤刚看到各种session问题,请问你们一般怎么解决的?
作者回复: 放到cookie中存储和检验,跳过登陆环节
2018-03-05 - 陈文凤刚看到各种session问题,请问你们一般怎么解决的?2018-03-051
- 莎莎影子库可以详细说下吗老师2022-04-19
- 迷城 。影子库如何保证和生产库结构一直2021-03-18
- James-东方赵老师,有个问题,就是不管何种测试方式,特别是在全链路压力测试的时候,虽然我们可以得到相对应的输入输出关系,但是,如何保证在实际线上(流量可能是50-100倍以上)其表现也是线性的? 我的实际问题是,如果我们测得每个单个应用都是线性的,把所有串联得来的系统是否还是线性的? 这个点貌似无法证明。 如果这样的话,压力测试如何起到预测的作用呢?2020-09-041
- James-东方@赵老师,2020还在学您的课程,听了以后收益匪浅! 想问两个问题, 1.对于容量规划,如果在云的INFRA下,做压力测试应该注意什么? 2. 如何保证压力测试能够跟得上容器变化的速度(我的意思是,很可能今天是AWS,明天就是GCP,或者EKS了)底层资源总是变化的话,模型如果更好的自动转化?2020-09-03
- Geek_2b6807感谢老师,很多值得借鉴和落地的想法2019-07-28
收起评论