项目结构
OtseaMaster为Eureka注册中心
OtseaUser为dubbo的provider 模块的spring服务运行在8101端口,dubbo provider运行在20880端口
OtseaContent为dubbo的consumer
使用Zookeeper做为dubbo的协调工具
使用机器为Sindows
cpu:i7-6500u
内存:8g
cpu表现
三个模块跑起来后cpu开始跑满,打开任务管理器发现dubbo的两个模块和zookeeper的进程占用了大部分的cpu,同时两个模块占用的内存较高。
排查方案
怀疑是某个线程或gc的问题,使用jstack打印堆栈信息,jstack的大致语法为:
在控制台打印:jstack -l pid
输出到文件:jstack -l pid > test.stack
得到堆栈信息之后开始找到占用cpu过高的线程,使用processExplorer进行线程分析