JAVA应用程序占用CPU内存过高分析过程
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内存过高分析过程的主要内容,如果未能解决你的问题,请参考以下文章
Linux [buff/cache]内存缓存占用过高分析和优化
Linux [buff/cache]内存缓存占用过高分析和优化