性能测试常见现象之tps波动频繁定位技巧

   日期:2020-07-09     浏览:293    评论:0    
核心提示:前言:前段时间,压测遇到一个问题,在压测的时候,tps波动很频繁。使用xshell远程连接到应用服务器,通过top命令看了下服务器资源情况,cpu波动也很频繁,其它服务器都正常。打开JvisualVM,双击对应的应用进程然后进入Sampler,在cpu波动的时候点击cpu进行抽样抽样进行一段时间后(一般1-2分钟即可),点击“stop”,然后点击“snapshot”生成快照接着按照“Total Time(CPU)”排序,看哪些线程最耗费cpu,因为我们用的是dubbo框架,所以,我们要分析的_性能测试cp

前言:前段时间,压测遇到一个问题,在压测的时候,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

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服