• 使用Jconsole监控weblogic的配置方法


    在项目中发现full gc非常频繁。达到了每分钟13次。我怀疑可能会有内存泄露。于是在晚上找了内存泄露的资料。

    内存长期占用并导致系统不稳定一般有两种可能:

    1. 对象被大量创建而且被缓存,在旧的对象释放前又有大量新的对象被创建使得内存长期高位占用。

    • 表现为:内存不断被消耗、在高位时也很难回归到低位,有大量的对象在不断的创建,经过很长时间后又被回收。例如:在HttpSession中保存了大量的分页查询数据,而HttpSession的会话超时时间设置过长(例如:1天),那么在旧的对象释放前又有大量新的对象在第二天产生。
    • 解决办法:对共享的对象可以采用池机制进行缓存,避免各自创建;缓存的临时对象应该及时释放;另一种办法是扩大系统的内存容量。

    2. 另一种情况就是内存泄漏问题

    • 表现为:内存回收低位点不断升高(以每次内存回收的最低点连成一条直线,那么它是一条上升线);内存回收的频率也越来越高,内存占用也越来越高,最终出现"Out of Memory Exception"的系统异常。
    • 解决办法:定位那些有内存泄漏的类或对象并修改完善这些类以避免内存泄漏。方法是:经过一段时间的测试、监控,如果某个类的对象数目屡创新高,即使在JVM Full GC后仍然数目降不下来,这些对象基本上是属于内存泄漏的对象了。

    那么就要使用Jconsole去监控weblogic的jvm.

    由于jconsole和weblogic都在同一台windows机器上,所以配置步骤如下:

    1. 首先是要配置WebLogic的启动脚本。

    D:weblogicdomainscebbch_domaininstartWebLogic.cmd 

    在其中找到

    set JAVA_OPTIONS=%SAVE_JAVA_OPTIONS%后,添加一句话,变成:

    set JAVA_OPTIONS=%SAVE_JAVA_OPTIONS%   -Dcom.sun.management.jmxremote

    2. 在weblogic的控制台找到

    域>安全>启用匿名管理员查找 ,并将其前面的方格勾上

    3. 然后启动jconsole,找到weblogic server的进程号,就可以连接成功了。否则,只能连接sun.tools.jconsole.Jconsole。

    至此,jconsole已经可以成功连接weblogic 了。

  • 相关阅读:
    Navicat for MySQL远程连接的时候报错mysql 1130的解决方法
    阿里云主机 CentOS6.5 安装Mysql php Apache
    MAC下使用feddler进行抓包
    javascript钩子之Backbone里的实现
    SASS编译
    动态代理模式和AOP探究
    二分查找算法
    MyBatis在非Spring环境下第三方DataSource设置-Druid篇
    写字节流转换String 代码示例
    SpringAOP代理报错问题
  • 原文地址:https://www.cnblogs.com/villadom/p/3973442.html
Copyright © 2020-2023  润新知