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

来源:互联网 发布:免费啪啪的软件 编辑:程序博客网 时间:2024/05/01 18:23
问题来源:
采用DUBBO服务,A、B两台服务器访问dubbo速度较慢,C、D服务器正常,服务器都是同样代码。
A、B 两台服务器,查看consumer都是1.5秒以上,而其他两台服务器都保持300毫秒以下
1、查看速度慢的服务器,红色的是时间
2、调用的provider执行时间:100多毫秒


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

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

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

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

JVM回收时间



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


0 0
原创粉丝点击