JAVA进程占用内存高,问题排查

1.查看实例CPU,执行top命令

image.png

2.查看进程对应的线程 top -Hp 14394

image.png

3.将PID转为十六进制 printf "%x\n" 14746

image.png

4.打印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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容