-----------------------------------------------cpu占用高----------------------------------------------------------------
0.查看当前资源占用情况
a) top 看一下当前内存和cpu情况
b) top -H -P (进程号) 看一下占用最高的进程,会显示进程号中,每个线程的cpu使用情况
c) 得到最高实用的cpu的线程号(如23621,24827)
1.查看进程号
ps axu|grep tomcat || ./jdk-7u51-linux-x64/jdk1.7.0_51/bin/jps
比如此时tomcat的进程号是24412
2.查看程序崩溃前,正在运行的代码
./jdk-7u51-linux-x64/jdk1.7.0_51/bin/jstack 24412 | less
3.查询资源占用高的进程号,在jstack中的运行具体地址
把23621,24827转化为16进制,到jstack 24412导出的文件中,去搜索对应的代码具体地址
也可以先查看下jstack导出的文件中,当前线程运行情况
---------------------------------------------------内存占用高------------------------------------------------------------
比如此时tomcat的进程号是24412
1.查看当前内存使用情况(PS Old Generation非常高甚至达到最大内存数时,gc不动会oom)
jdk-7u51-linux-x64/jdk1.7.0_51/bin/jmap -heap 24412|more
2.查看当前内存中对象的数量和大小
jdk-7u51-linux-x64/jdk1.7.0_51/bin/jmap -histo:live 24412|more
3.查看当前内存的gc情况
jdk-7u51-linux-x64/jdk1.7.0_51/bin/jstat –gcutil 24412 2000
0.查看当前资源占用情况
a) top 看一下当前内存和cpu情况
b) top -H -P (进程号) 看一下占用最高的进程,会显示进程号中,每个线程的cpu使用情况
c) 得到最高实用的cpu的线程号(如23621,24827)
1.查看进程号
ps axu|grep tomcat || ./jdk-7u51-linux-x64/jdk1.7.0_51/bin/jps
比如此时tomcat的进程号是24412
2.查看程序崩溃前,正在运行的代码
./jdk-7u51-linux-x64/jdk1.7.0_51/bin/jstack 24412 | less
3.查询资源占用高的进程号,在jstack中的运行具体地址
把23621,24827转化为16进制,到jstack 24412导出的文件中,去搜索对应的代码具体地址
也可以先查看下jstack导出的文件中,当前线程运行情况
grep java.lang.Thread.State stack.log | awk '{print $2$3$4$5}' | sort | uniq -c,如:
24 RUNNABLE
34 TIMED_WAITING(onobjectmonitor)
96 TIMED_WAITING(parking)
5 TIMED_WAITING(sleeping)
2 WAITING(onobjectmonitor)
34 WAITING(parking)
---------------------------------------------------内存占用高------------------------------------------------------------
比如此时tomcat的进程号是24412
1.查看当前内存使用情况(PS Old Generation非常高甚至达到最大内存数时,gc不动会oom)
jdk-7u51-linux-x64/jdk1.7.0_51/bin/jmap -heap 24412|more
2.查看当前内存中对象的数量和大小
jdk-7u51-linux-x64/jdk1.7.0_51/bin/jmap -histo:live 24412|more
3.查看当前内存的gc情况
jdk-7u51-linux-x64/jdk1.7.0_51/bin/jstat –gcutil 24412 2000