一 系统或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
3 jvm FGC前后dump内存
-XX:+HeapDumpBeforeFullGC -XX:+HeapDumpAfterFullGC
4 crash日志