top查看进程:
先查看日志报错,没看出个所以然, 通过线程 + jstack进一步查看
top -Hp 21488
存在多个线程占用cpu, 判断为同一个类
线程号转16进制 后续通过jstack继续查看
jstack 进程号 | grep -A 30 16进制线程号 30指显示30条
查看LoopReceiveRunner.run 107行
发现其实就是一个获取连接报错后不断while循环导致的
修改后上到环境:
恢复正常
几个问题:
jstack报:Unable to open socket file: target process not responding or HotSpot VM not loaded
原因查出来是进程长时间未重启或用户不对,进程重启 切换为启动进程的用户后,jstack恢复正常