写点什么

生产环境全链路压测建设历程 20:某快递 A 股上市公司的生产压测案例之彩蛋

发布于: 2020 年 12 月 25 日

2018年我们和D公司合作完毕生产环境的全链路压测后,随着时间的发展,还冒出来一些有意思的事情。

全链路压测引发的“性能”作弊

上一篇有提到,D公司在2019年,每个月都在生产环境进行一轮全链路压测,以此作为管理抓手,把性能问题做成了一个排名榜。

而这个排名榜,是和业务系统开发人员的KPI挂钩的。



有部分业务线的开发人员,为了规避被每月一次的全链路压测发现出来问题,没有从改善系统的性能来入手,而是发挥了一些小聪明来作弊。



具体的做法是,在业务逻辑代码里面,通过检查流量的标记,来判断是否为压测流量。如果是压测流量,直接sleep一下200ms,然后直接返回。

如何发现是有作弊行为的?

在连续几个月几次的全链路压测中,有发现部分链路的性能特别稳定,无论你怎么压,链路的响应时间曲线趋势图,都是非常平稳的在200ms左右波动 。

最后如何解决(反作弊)?

最后是有两个办法吧。 第一个是针对硬编码的压测标判断,在java探针增加数据的采集,看业务代码是否有对压测标单独做逻辑处理。 第二个是采集压测流量和正常流量在某一个方法、服务里面的平均时长,然后做个对比,基本上就能发现是否被故意处理过。

思考总结

这样一个性能作弊的case,其实在我们和D公司合作的时候,完全没考虑过会发生这样的一个场景。

但想想也蛮有意思的,对比于以往的APM,监控系统等属于”被动式“的保障系统稳定性的手段, 生产环境的全链路压测,是属于”主动出击“的手段,是提升应用系统稳定的一种新的对策。

一个新的技术产品的推广,必然会遇到以前没想过的场景和问题。

对于工程师而言,参与到了改变世界、让系统更稳定的过程里面,遇到一些没想过的问题,也是一种幸运和幸福吧。



发布于: 2020 年 12 月 25 日阅读数: 14
用户头像

还未添加个人签名 2017.12.21 加入

还未添加个人简介

评论

发布
暂无评论
生产环境全链路压测建设历程 20:某快递 A 股上市公司的生产压测案例之彩蛋