内存分析

(1)查看目前虚拟机内各个区的内存占用情况,可以使用如下的命令

/opt/jdk/java/bin/jstat -gcutil -h3 $JAVA_PID 250 60

 

具体打印出的各个参数的意义可以google一下。

 

(2)查看某一天完整的内存随时间的变化情况,最好的办法是在jvm启动时里加上下面几个参数:

-verbose:gc -Xloggc:/home/admin/logs/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps

打印出的信息格式类似下面这样:

2010-05-17T11:16:17.017+0800: 261697.550: [GC [PSYoungGen: 491056K->17347K(493440K)]

1205158K->731961K(1554304K), 0.0424430 secs] [Times: user=0.09 sys=0.00, real=0.04 secs]

其中 1205158K->731961K 即表示经过本次gc,你总的内存由1205158K下降到731961K 。

 

(3)查看目前都是哪些对象占用了比较多的内存,可以执行下面的命令

/opt/jdk/java/bin/jmap -histo $JAVA_PID | head -n 10

 

表单里显示的占用最多内存的对象是char类型。

 

(4)对整个内存有个详细的了解,可以通过jmap把内存dump下来,然后使用mat打开查看。

/opt/jdk/java/bin/jmap -dump:format=b,file=dump.bin $JAVA_PID

 

 

 

 

阅读更多
想对作者说点什么? 我来说一句

Memcached内存分析、调优、集群

2011年03月28日 2.02MB 下载

Java 内存简要

2018年02月24日 1.81MB 下载

android 内存分析

2016年10月29日 22KB 下载

java内存分析-内存泄露问题.rar

2011年09月05日 671KB 下载

Java内存分配浅析

2015年01月01日 750KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭