05 | 全链路压测:系统整体容量保障的“核武器”(上)
全链路压测的诞生
- 深入了解
- 翻译
- 解释
- 总结
全链路压测在系统容量保障中扮演着关键角色,尤其在大型活动如双11中的重要性不言而喻。全链路压测的核心在于模拟真实环境下的海量用户请求,以评估整个系统的容量,从而验证系统是否能够承载预估的流量峰值。相较于单链路压测,全链路压测更全面地评估系统容量,避免了简单相加的局限性。文章还详细介绍了全链路压测的建设过程,包括数据隔离、中间件改造和应用服务改造等三项关键工作。总的来说,全链路压测的实施需要解决诸多重点问题,但一旦具备基本条件,将为系统容量保障提供强大支持。
《容量保障核心技术与实战》,新⼈⾸单¥29
全部留言(4)
- 最新
- 精选
- cctester影子库和影子表核心区别是什么,一般如何选型~
作者回复: 这个问题比较大,每个人的实践可能也不一样,我尽量简略解答,谈一下我的观点。首先,两者的数据隔离粒度不一样,如果是影子表,它与真实表一般位于同一个数据库实例上共享资源,影子库则彻底隔离;其次,实现方式不一样,或者说对业务服务的侵入性不同,业务服务在调用数据库时,一般是将库名随连接串写在配置文件或配置中心的,具体访问哪张表在程序内由ORM组件(如MyBatis)控制,如果采用影子表的方案,写一个interceptor就可以了,但如果采用影子库的方案就会比较麻烦,最好得有个数据库中间件,还会涉及到对另一个数据库的连接管理等等工作。 针对全链路压测一般使用影子表居多,原因主要有两点:1.真实的全链路压测往往不会也没必要覆盖所有链路,因此并不是所有数据表都需要建立对应的影子表,如果我们以「库」作为物理隔离维度就太粗了,也浪费资源;2.如上段所述,影子表对业务服务的侵入性更小,实现成本更低一些。
2021-06-284 - 东宇其他模块和线上共用的情况下,影子表可以反应真实压测情况吗?例如表的读写压力等?
作者回复: 你好,不是很清楚“其他模块和线上共用”的含义,如果你指的是线上有背景流量(真实流量)对真实库存在一定的压力,而全链路压测对数据库的压力是作用在影子表的话,那是无妨的。 一方面,影子表和真实表一般位于同一个数据库实例上(即便分片也是如此),从库的视角来说,总的压力是基本一致的。 另一方面,全链路压测一般都选择在低峰期进行,背景流量几乎可以忽略不计。
2021-10-09 - Geek_6bb老师你好!混合场景指的是把不同业务流程按比例然后放在一个线程组下面运行吗?
作者回复: 你好,关于你提到的“放在一个线程组下面运行”,这是混合场景容量测试的一种具体可行的实施形式,但并不是唯一的形式(第7讲介绍的压测平台可以通过配置集的方式达到相同的效果),关键是要保证按照尽可能真实的流量比例以及场景去施压。 此外再多说一句,混合场景是单个业务场景的组合,但不一定是简单相加,需要整体检查一下各场景间有没有重复计算的流量,有没有流量峰值不一致的情况(单场景流量峰值的时刻不一定是混合场景流量峰值的时刻),各场景间的测试数据会不会有冲突等全局性的问题。
2021-09-112 - ralph影子表的方式,所使用的实际数据库和线上服务还是同一个吗?如果压测到服务极限,出现故障情况,怎么保证不影响到线上业务呢?
作者回复: 一般来说,影子表和真实表是位于同一个数据库上的(否则就是影子库了)。对于压测时的风险管控,可以回顾一下“容量测试与验证”一讲中“科学实施容量测试”的第4点测试执行的内容。在阿里本地生活的实践中,全链路压测期间有GOC团队和DBA团队共同监控数据库的各项指标,如出现负载过高、延迟过高等情况,会通知压测团队及时暂停止损。
2021-08-17