`

JVM 内存分析

 
阅读更多
1.获取java程序进程号
jps


2.jmap
jmap pid #打印内存使用的摘要信息
jmap –heap pid #java heap信息
jmap -histo:live pid #统计对象count ,live表示在使用
jmap -histo pid >mem.txt #打印比较简单的各个有多少个对象占了多少内存的信息,一般重定向的文件
jmap -dump:format=b,file=mem.dat pid #将内存使用的详细情况输出到mem.dat 文件,可以用jvisualvm等工具进行内存分析
 


3.jstack
jstack $PID
可以找出cpu使用最高的对象,jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息


4.jinfo
jinfo $PID
Java Configuration Info


5.jstat
jstat -gcutil pid #统计gc信息统计
jstat -gcnewcapacity pid #年轻代对象的信息及其占用量
更多详情见: http://www.2cto.com/kf/201109/105988.html


6.参数设定
-XX:PrintGCDetails 控制台显示收集器日志信息
-Xms 20M、 -Xmx20M -Xmn10M 堆大小为20M,不可扩展,其中新生代为10M
-XX:+PrintTenuringDistribution=15 年龄多大进入老年代,默认为15
-XX:HandlePromotionFailure=true|false 担保失败,新生代没有空间,可以直接放入老年代中,如果为true,则只进行一次Minior GC,否则进行一次Full GC
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics