[实战案例一]-dubbo-consumer 执行时间慢

问题来源:
采用DUBBO服务,A、B两台服务器访问dubbo速度较慢,C、D服务器正常,服务器都是同样代码。
A、B 两台服务器,查看consumer都是1.5秒以上,而其他两台服务器都保持300毫秒以下
1、查看速度慢的服务器,红色的是时间
[实战案例一]-dubbo-consumer 执行时间慢_第1张图片
2、 调用的provider执行时间:100多毫秒
[实战案例一]-dubbo-consumer 执行时间慢_第2张图片

3、 此时判断服务器端应该没有问题,那是什么问题呢?

排查dubbo 连接zk,负载策略、socket通信?
经排查,服务器启动时获取zk信息,之后不再调用。负载策略也是随机数,不会出现问题。难道socket通信?服务都在一个机房并且有的在一个网段,出现问题几率不是很大。
后续查看JVM的信息,发现JVM A、B两台,GC回收时间都是其他几台的将近6倍,难道是JVM导致的?
下面查看JVM参数发现下面信息

1、修改之前,启动脚本,JIT关闭

2、前面是修改之前的时间,后面是修改后的时间

JVM回收时间
[实战案例一]-dubbo-consumer 执行时间慢_第3张图片


2、打开JIT,去掉 -Djava.compiler=NONE 代码
1、JVM回收状况、上面的低谷
3、后续查看服务器3JIT也关闭了, -Djava.compiler=NONE ,但是性能并没有受影响,查看启动脚本里面有段此代码, -Xdebug -Xrunjdwp:transport=dt_socket,address=127.0.0.1:5000,server=y,suspend=n

-Xdebug 去掉之后,服务器回收时间立马提升5倍以上,后查询 –Xdebug 设置之后, -Djava.compiler会被忽略,采用默认配置打开
http://bugs.java.com/bugdatabase/view_bug.do?bug_id=4516835


你可能感兴趣的:([实战案例一]-dubbo-consumer 执行时间慢)