JAVA应用程序占用CPU内存过高分析过程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA应用程序占用CPU内存过高分析过程相关的知识,希望对你有一定的参考价值。

1.查看cpu占有率

top -P

2.查看进程cpu占用率

 ps -mp 3749 -o THREAD,tid,time|sort -rn|head -n 20

查看占用cpu高,且占用时间长的线程

$.线程ID转换为16进制格式

printf "%x\\n" tid

3.查看java堆栈信息

su - nobody -c "/usr/java/jdk1.6.0_21/bin/jstack 3749|grep 34d8 -A 30"  34d8替换成上面转换的16进制

注意:这里要使用程序启动的用户执行此命令

使用root会提示:

Unable to open socket file: target process not responding or HotSpot VM not loaded

The -F option can be used when the target process is not responding

4.分析结果

请开发协助分析结果...

参考链接

http://www.jianshu.com/p/5f14386a1fe3

http://dbaplus.cn/news-21-130-1.html

http://www.blogjava.net/hankchen/archive/2012/05/09/377735.html

 

以上是关于JAVA应用程序占用CPU内存过高分析过程的主要内容,如果未能解决你的问题,请参考以下文章

java性能分析 - CPU飙高分析工具

Linux [buff/cache]内存缓存占用过高分析和优化

Linux [buff/cache]内存缓存占用过高分析和优化

工程师利器系列5---一次线上Jvm内存占用过高分析全纪录(Jmap篇)

java进程CPU高分析

Java CPU占用率高分析