0.分类
线程 |
jstack |
内存 |
jmap |
性能 |
jstat |
1.查找到Jvm的进程id,以后所有命令基本都需要
jps
jps
- v
jps
-q
jps
-m
jps
-l
jps
| grep ‘Bootstrap‘ | awk ‘{print
$1}‘ |
|
2.jstat命令使用
jps
-opt pid -h n (每隔多少行出现行头)interval(间隔多久) count(多少次)
jstat
-gcutil pid 1000
jstat
-gccapacity pid 1000
jstat
-class pid
jstat
-compiler pid
jstat
-gc pid
jstat
-printcompilation pid
jstat
-gccause pid
|
3.jinfo可以输出并修改运行时的java 进程的参数
jinfo
-opt pid
jinfo
pid
jinfo
-flag MaxPermSize pid
jinfo
-flag +PrintGCDetails 2000
|
4.jmap打印出某个java进程内存内的,所有‘对象’的情况
jmap
-opt pid
jmap
-dump: format =b, file = test .bin
pid
jmap
-finalizerinfo pid
jmap
-heap pid
jmap
histo:live pid | head -n
23
jmap
-permstat pid
|
5.jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息
jstack
-opt pid
jstat
pid > jstat01.log
jstat
pid | grep -C
10 pid(16进制转换之后)
|
转换工具 http://tool.oschina.net/hexconvert
dump 文件里,值得关注的线程状态有:
死锁,Deadlock(重点关注)
执行中,Runnable
等待资源,Waiting on condition(重点关注)
等待获取监视器,Waiting on monitor entry(重点关注)
暂停,Suspended
对象等待中,Object.wait() 或 TIMED_WAITING
阻塞,Blocked(重点关注)
停止,Parked
参考:
1.http://blog.csdn.net/fenglibing/article/details/6411951
2.http://xianqi-h.iteye.com/blog/1346491
3.http://docs.oracle.com/javase/7/docs/technotes/tools/share/jstat.html
4.http://fengbin2005.iteye.com/blog/2167316