暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

性能测试案例:tps波动频繁

全栈测试笔记 2019-09-29
1095

↓↓↓ 如有疑问或者建议,请在文末留言 ↓↓↓

一、问题现象

前段时间,压测遇到一个问题,在压测的时候,tps波动很频繁。

二、监控

使用xshell远程连接到应用服务器,通过top命令看了下服务器资源情况,cpu波动也很频繁,其它服务器都正常。

三、分析、定位

打开JvisualVM,双击对应的应用进程

然后进入Sampler,在cpu波动的时候点击cpu进行抽样

抽样进行一段时间后(一般1-2分钟即可),点击“stop”,然后点击“snapshot”生成快照

接着按照“Total Time(CPU)”排序,看哪些线程最耗费cpu,因为我们用的是dubbo框架,所以,我们要分析的业务线程就是DubboServerHandler。分析的时候,我们需要多看几个DubboServerHandler线程,双击指定线程就可以看这个线程的调用栈以及耗时情况,看看这些线程在哪里比较耗费cpu

通过分析发现,在Dubbo远程调用的时候验证参数的时间比我们处理业务的时间还长

四、调优、总结

结合Dubbo官方文档得知,Dubbo的参数验证这个特性是比较耗费性能的,而我们的接口参数使用了javax.validation注解来验证参数。

最终,我们的调优方案是在调用的时候使用validation=“false”,即禁止使用参数验证这个特性后,tps就平稳多了,且cpu也正常了。

Dubbo官方文档:http://dubbo.apache.org/zh-cn/docs/user/maturity.html


声明:封面图片来源于网络,如有侵权,请联系删除。

END

欢迎长按下图关注全栈测试笔记

性能测试等实战经验倾囊相授

↓↓↓ 如有疑问或者建议,请点击下方留言 ↓↓↓

点击此处留言反馈


推荐阅读

点击阅读☞测试技术提升建议

点击阅读☞如何面试性能测试

点击阅读☞玩转jmeter:beanshell必备技能

点击阅读☞性能测试常用术语解释

点击阅读☞jmeter5.1分布式压

点击阅读☞性能面试题:如何找到并发数、平均响应时间、tps的最佳平衡点?



今天的苦逼, 是为了不这样一直苦逼下去!

走过路过,点个在看再走吧~

文章转载自全栈测试笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论