系统内存检测

 对于系统出现内存溢出,介绍了一个检测方法,在这里做一记录(jdk1.6+MemoryAnalyzer插件)

在 运行 里输入 jconsole 出现以下界面

这里可以对本地和远程进行监控

远程

如:修改Tomcat的启动语句,编辑linux服务器上的tomcat的bin/catalina.sh文件

# OS specific support.  $var _must_ be set to either true or false.

JAVA_OPTS="-Djava.rmi.server.hostname=192.168.2.168 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8111 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

注:8111端口和应用端口不要一样

这里就对本地监控进行测试 ,从界面可以看出我本地有一个程序运行中进入后(让程序运行一段时间或者压力出现内存溢出)



 

选择 Mbean -> com.sun.management -> HotSpotDiagnos -> Operations -> dumpHeap

在参数 p0 中填写保存 dump 文件的路径,例如 d:\my.hprof, 文件的后缀名要为 hprof

点击 dumpHeap 按钮生成 dump 文件

 

 

然后 打开 Memory Analysis插件 选择刚刚生成的文件



 

 

可看清楚看出系统内存的情况

 

可以点击饼状图查看系统每个地方使用内存的详情情况,进而对系统内存溢出问题进行跟踪、分析、优化

 

 

猜你喜欢

转载自fq-kevin.iteye.com/blog/1283311