初探jconsole+weblogic9.2(转)

上一篇 / 下一篇  2009-12-17 15:19:27 / 个人分类:jvm

web 项目使用weblogic9.2做为服务器, 出现了out of memory 问题, 这时就引发了需要监控JVM内存使用情况. 本来一开始使用jprofiler ,但是只能免费10天... 10天能干什么,难道我们程序员就不过周末了??万恶的jprofiler公司. 还好JDK1.5有jconsole.

步骤:

1. weblogic服务是"startWebLogic.cmd" 程序来启动的 , 要想连接到jconsole必须设置com.sun.management.jmxremote 参数.

运行->startWebLogic.cmd -Dcom.sun.management.jmxremote

或者在快捷方式加上也可以:


2.运行->jconsole

3.选择监控服务

4.OK,连接成功,如下图

记录一点Out Of Memory 原因:

堆是应用程序使用的主要部分,一旦堆满,应用程序就会抛出Out Of Memory错误。具体关于堆的构成以及垃圾回收算法,可以参考文档:

http://aleung.blogbus.com/logs/4712392.html

这个环节的优化:

1) 增加JVM内存,使得可使用的堆内存尽可能多,延长垃圾回收的时间。需要注意的是,一般来说,回收1G内存所需要的时间是7秒左右,如果这个时间访问量比高,极容易导致应用停止响应,所以并非是越大内存越好。通过增加XX:+PrintGCDetails参数可以观察到垃圾回收的频率和时间

2) 调整垃圾回收策略,加快JVM的回收,因为Web应用响应高,很多都是无用内存,加快回收可以保证有效堆会更多,这种方式会消耗更多的CPU。


TAG:

 

评分:0

我来说两句

Open Toolbar