zoukankan      html  css  js  c++  java
  • jvisualvm/Jconsole监控WAS(WebSphere)中间件

    1登录was控制台https://196.168.119.18:9043/ibm/console/,找到自己的应用程序服务器---java和进程管理---进程定义--JAVA虚拟机,然后配置 通用JVM 参数

    加入以下jvm参数:

     -Djavax.management.builder.initial=

    -Dcom.sun.management.jmxremote.port=7001

    -Dcom.sun.management.jmxremote.authenticate=false

    -Dcom.sun.management.jmxremote.ssl=false

    注意:等号后面一定要保留空格,否则会报错。先执行netstat -ano | grep 7001,查看这个端口是否被使用。另外注意防火墙对7001端口的配置,要放开,否则远程机器可能连接不上.

    2、修改/usr/IBM/WebSphere/AppServer/java/jre/lib/management下的management.properties文件,在最后加入 

    com.sun.management.jmxremote.port=7001

    com.sun.management.jmxremote.authenticate=false

    com.sun.management.jmxremote.ssl=false

    3、设置jconsole远程登录的用户名和密码在/usr/IBM/WebSphere/AppServer/java/jre/lib/management下有个jmxremote.password.template文件,在最后面加入你要设置的用户名和密码

    root root@123 (用户名、密码,可以随意修改)

    备注:(第二、三步,我在实际操作中,没有配置也是可以连接的)

    4在was控制台上停掉自己的应用程序服务器,然后重启。

    进入JAVA_HOME所在的bin目录,运行jvisualvm.exe或Jconsole.exe就可以启动远程连接WAS服务器的话,需要添加JMX连接方式就可以了

    分析:

    内存溢出的原因有很多种,比如:

     1、数据量过于庞大;死循环 ;静态变量和静态方法过多;递归;无法确定是否被引用的对象;

    2、虚拟机不回收内存(内存泄漏);说白了就是程序运行要用到的内存大于虚拟机能提供的最大内存就发生内存溢出了。

    内存溢出的问题要看业务和系统大小而定,对于某些系统可能内存溢出不常见,但某些系统还是很常见。

    内存溢出的一般解决方法:

     一个是优化程序代码,如果业务庞大,逻辑复杂,尽量减少全局变量的引用,让程序使用完变量的时候释放该引用,能够让垃圾回收器回收和释放资源。

    二就是物理解决,增大物理内存,然后通过-Xms256m -Xmx2048m 的修改来增大内存空间。

  • 相关阅读:
    J2EE规范标准
    怎样用Google APIs和Google的应用系统进行集成(4)----获得Access Token以通过一些Google APIs的OAuth2认证
    [BestCoder Round #3] hdu 4908 BestCoder Sequence (计数)
    大数据存储之分布式文件系统(一)
    List与array的相互转换
    TRIZ系列-创新原理-31-多孔材料原理
    关于app.FragmentManager和v4包的FragmentPagerAdapter冲突
    POJ 1163 The Triangle
    ChinaVis2015 第一天会议
    JSON初入门
  • 原文地址:https://www.cnblogs.com/zwh-Seeking/p/11164100.html
Copyright © 2011-2022 走看看