1.查看实例CPU,执行top命令
image.png2.查看进程对应的线程 top -Hp 14394
image.png3.将PID转为十六进制 printf "%x\n" 14746
image.png4.打印PID对应的堆栈信息 jstack -l 14394 > jstack.log
5.进入log文件中根据十六进制搜索
image.png修改
最后是gson转换时有一个str转为date,修改成str转为str,该线程的CPU下降一半。
参考记录
java进程占用系统内存高,排查解决
JVM调优实战(一)
JVM调优实战(二)
内存泄漏分析工具MAT安装
查看CPU占用
top -Hp <PID>
查看进程的线程数
cat /proc/pid/status
网友评论