=================== jmap ===========================
jmap -histo:live pid 最后一行,查看堆内存大小
================== mat =========================
jmap -dump:live,format=b,file=/home/admin/heap.bin
安装 eclipse mat 插件:http://download.eclipse.org/mat/1.2/update-site/
eclipse->open file 打开heap文件分析
=================== jvisualvm =============
window下启动远程监控,并在被监控服务端,启动jstatd服务。
创建安全策略文件,并命名为jstatd.all.policy
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
jstatd -J-Djava.security.policy=jstatd.all.policy -p 8080 &
================== jstat ==========================
jstat -gcutil pid 查看jvm堆内存各个区域使用的情况
================= jvm args =======================
-XX:+HeapDumpOnOutOfMemoryError
================= btrace =========================
http://kenai.com/projects/btrace/downloads下载二进制包
编写trace代码TTrace.java
import static com.sun.btrace.BTraceUtils.*;
import com.sun.btrace.annotations.*;
@BTrace
public class TTrace {
@OnMethod(
clazz="Test",
method="test"
)
public static void traceExecute(@Self Test instance){
println("call CaseObject.execute");
}
}
bin/btrace $pid TTrace.java