一 系统或jdk内置的分析命令和工具

1 top

top
    top -H -p <pid>
    top -H -b -n 1 -p <pid>

2 jstack

jstack <pid>
    jstack  [-l]  <pid>

3 jmap

jmap -histo[:live] <pid>
   jmap -dump:format=b,file=xxxfile <pid>

4 jps

jps [-v]

5 jstat

jstat -gcutil <pid> 1s 10    
   jstat -gccause <pid> 1s 10

6 jconsole

http://docs.oracle.com/javase/6/docs/technotes/guides/management/jconsole.html

7 jviusalvm

8 jhat

9 linux dstat命令   dstat是一个用来替换 vmstat,iostat netstat,nfsstat和ifstat这些命令的工具, 是一个全能系统信息统计工具

二业界java性能分析工具

1 eclipse mat

http://www.eclipse.org/mat/downloads.php

2 jprofiler

商业分析工具

http://www.ej-technologies.com/products/jprofiler/overview.html

3 tprofiler 


4 knife


5 btrace

三 jvm参数

1 gc日志输出

在 jvm启动参数中加入 -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCTimestamps -XX:+PrintGCApplicationStopedTime ,其他还有  -Xloggc:文件路径, -verbose:gc  -XX:+PrintTenuringDistribution

2 jvm outOfMemory时dump内存

-XX:+HeapDumpOnOutOfMemoryError

jvm FGC前后dump内存

-XX:+HeapDumpBeforeFullGC -XX:+HeapDumpAfterFullGC

4 crash日志