下面是⼀个登录接⼝的基准场景测试,JMeter 启动后,线程在 1-2 个的时候 TPS 已经达到 200 左右,随着压力增加只有时间增加,TPS 就一直没有增加,错误也没有。
结论:有性能瓶颈!这是在看压力数据时一定要给出的结论,就是有没有瓶颈,然后就是下一步要做什么?
不断告诉大家做性能不能靠猜也不能靠经验,因为这些容易出错,那么我们靠什么呢?
我们看到的呈现已经是果,对于果,我们应该怎么去排查的起因呢?这里我们引用《RESAR 性能分析七步法》:
根据 《 RESAR 性能分析七步法 》第二步:看架构,知道架构就不会众盲摸象,各说异端。
这里再引用部署架构来指导我们更好理解他们调用关系。
这里在补充一张接口调用关系图。
第三步就是拆分响应时间,用日志、链路监控工具都可以,但是一定要拆准!
接下来请出我们独创的性能分析决策树思路。
查看各服务器整体资源。
补充查看网络信息,因为在上图中没有网络信息。像这样的动作,就是因为监控工具的监控盲点而做的动作。
对于操作系统来说我们应该怎么下手分析呢,这里引用操作系统决策树做分析指导。(这样的分析决策树在课堂上可是手把手教怎么创建自己的分析决策树还有他们之间的逻辑关系)
从这个逻辑中,就要推断出具体的证据链了。
性能瓶颈的判断是要靠上一步的证据链,在这一步中是要给出明确的瓶颈结论。
根据瓶颈的结论提出解决方案,并给出解决方案的对比建议,从时间、成本等角度做出对比,选择最适合的解决方案。
分析到这里我们就可以见证不是靠经验不是靠猜而靠证据链靠逻辑一步一步把问题找到并解决。
古人有句话这样说:“授人以鱼,不如授人以渔”。掌握分析思路才能帮助企业节约资源,让资源使用最大化。