发布时间:2020-07-08
随着互联网的发展与各种新业务的出现,全链路压测将被应用到更多的日常场景中去,那么为什么这些企业都需要做全链路压测呢?
早先的时候,压测并不是针对业务的全链路来开展的,而是采用了“各个击破”的原则,即对生产环境中的单机或者单系统进行独立的压测。单系统独立压测模拟海量请求主要有两种实现方式:
1、根据设计的压力来直接模拟大量的并发调用;
2、先获取线上真实的流量请求,然后经过数据清洗再回放模拟大量的并发调用。
单系统独立压测的弊端在某大型活动例如秒杀放开的瞬间,从CDN、网关接入、前端、缓存、中间件、后端服务、数据库整个交易链路都会面临巨大的访问压力,这个时候系统服务除了受自身的影响外,还依赖于其他关联系统的影响,并且该影响会一直蔓延,只要有一个节点出现故障,那么故障在上下游系统经过层层累加后造成的影响将难以追溯。
现阶段的全链路压测在真实的生产环境上以真实的量级去模拟真实的业务操作,并以此来衡量系统的实际承载能力,或者找出系统的瓶颈点。
这样的好处是在大促前夕就能在线上环境进行真实模拟,以此改进修复自身系统的不足,从而保障系统在流量的冲击下保持稳定。随着近几年的电商不断发展,一些如“双11”“双12”“618”等等大促日如雨后春笋般冒了出来,于是基于真实的生产环境来模拟海量的并发用户请求和数据,就显得十分必要了。
全链路压测能解决什么问题?
随着移动互联网、云计算、物联网等技术的不断发展,应用架构也变得更加离散和复杂,一个应用的高稳定性不仅需要自身系统的稳健,同时也更加依赖网络、第三方服务的质量,而这些外部的"不确定"因素让稳定性变得更加"不可控"。在这种"不可控"的复杂环境中,如何保障高并发条件下的应用性能稳定性,需要解决以下问题:
1、高流量下的系统稳定性不足,如易崩溃、卡顿等问题;
2、新代码上线的性能基线比对,如RT、CPU load、数据库性能比对等;
3、不知道该如何合理配置机器配置和数量,多配或少配等问题;
4、系统日常运行不稳定,时不时宕机、服务不可用等问题;
5、代码变化频繁,几经易手后,架构混乱、难梳理等问题;
6、对于运行的情况不清楚,不知道当前性能健康程度如何的问题;
当然全链路压测的过程中显然不止这些问题,而全链路压测的主要作用就是通过模拟超大流量冲击链路上的这些节点,观察链路在流量峰值时的表现和故障情况,来发现链路流程上的瓶颈或性能问题。
推荐阅读:
您的信息已成功提交!
我们的客服人员稍后会与您联系