进入jdk的bin目录下执行以下命令
堆内存dump ./jmap -dump:live,format=b,file=fileName pid. live代表存活的对象
栈dump ./jstack pid > fileName
统计jvm 内存使用信息:
比较常用的是jstat -gcutil pid 间隔时间(ms)
http://docs.oracle.com/javase/1.5.0/docs/tooldocs/share/jstat.html
设置PermSize参数:JVM 启动时增加参数
-XX:PermSize=128M
设置GC相关的日志路径和GC开关
-verbose:gc -Xloggc:filePath -XX:+PrintGCDetails -XX:+PrintGCTimeStamps
查看jvm启动时的参数设置:
./jinfo -flag MaxPermSize pid
./jinfo -flag PermSize pid
./jinfo -flag PrintGCDetails pid
查看进程中占用cpu最高的线程id,转换为16进制后去jstack中找线程.
top -H -p 4225
其中pid指jvm进程的id,可以通过 ps aux | grep java 找到pid