原文链接:http://xjsunjie.blog.51cto.com/999372/1331880/

jconsole是JDK里自带的一个工具,可以监测Java程序运行时所有对象的申请、释放等动作,将内存管理的所有信息进行统计、分析、可视化。我们可以根据这些信息判断程序是否有内存泄漏问题。  使用jconsole工具来分析WAS的JVM问题,需要进行相关的配置。  首先我们看WAS服务器端的配置.


1、登录was控制台https://10.4.119.18:9043/ibm/console/,找到自己的应用程序服务器---java和进程管理---进程定义--JAVA虚拟机,然后配置 通用JVM 参数 
加入以下jvm参数:-Djavax.management.builder.initial= -Dcom.sun.management.jmxremote
注意:等号后面一定要保留空格,否则会报错。



2、修改/usr/IBM/WebSphere/AppServer/java/jre/lib/management下的management.properties文件,在最后加入  
com.sun.management.jmxremote.port=8999
com.sun.management.jmxremote.authenticate=false
com.sun.management.jmxremote.ssl=false
注意:先执行netstat -ano | grep 8999,查看这个端口是否被使用。另外注意防火墙对8999端口的配置,要放开,否则远程机器可能连接不上.



3、设置jconsole远程登录的用户名和密码在/usr/IBM/WebSphere/AppServer/java/jre/lib/management下有个jmxremote.password.template文件,在最后面加入你要设置的用户名和密码
root root@123 (用户名、密码,可以随意修改)


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


WINDOWS客户端的设置
1、进入JAVA所在的BIN目录


2、输入IP、端口号、用户名和密码进行远程连接


3、监控界面可以看到内存、类、线程、CPU的使用情况。


使用这个工具再配合JCA工具就能很方便的分析内存溢出问题。



Java VisualVM也是JDK的一个集成的分析工具,自从JDK 6 Update 7以后已经作为Sun的JDK的一部分。VisualVM可以监控应用程序的性能和内存占用情况、监控应用程序的线程、进行线程转储(Thread Dump)或堆转储(Heap Dump)、跟踪内存泄漏、监控垃圾回收器、执行内存和CPU分析,保存快照以便脱机分析应用程序;同时它还支持在MBeans上进行浏览和操作。 VisualVM自身要在JDK6以上的运行,但是JDK1.4以上版本的程序也能被它监控。

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



内存溢出的原因有很多种,比如:
1、数据量过于庞大;死循环 ;静态变量和静态方法过多;递归;无法确定是否被引用的对象;
2、虚拟机不回收内存(内存泄漏);说白了就是程序运行要用到的内存大于虚拟机能提供的最大内存就发生内存溢出了。 
内存溢出的问题要看业务和系统大小而定,对于某些系统可能内存溢出不常见,但某些系统还是很常见。

内存溢出的一般解决方法:
一个是优化程序代码,如果业务庞大,逻辑复杂,尽量减少全局变量的引用,让程序使用完变量的时候释放该引用,能够让垃圾回收器回收和释放资源。
二就是物理解决,增大物理内存,然后通过-Xms256m -Xmx2048m 的修改来增大内存空间。 

JConsole & JVisualVM远程监视Websphere服务器JVM的配置方法的更多相关文章

  1. jconsole & jvisualvm远程监视websphere服务器JVM的配置案

    jconsole是JDK里自带的一个工具,可以监测Java程序运行时所有对象的申请.释放等动作,将内存管理的所有信息进行统计.分析.可视化.我们可以根据这些信息判断程序是否有内存泄漏问题. 使用jco ...

  2. Nginx服务器的Websockets配置方法

    这篇文章主要介绍了简介Nginx服务器的Websockets配置方法,是使用Nginx服务器的网管的必备知识XD~需要的朋友可以参考下 Nginx 1.3.13 已经发布了,该版本支持 Connect ...

  3. JConsole/JvisualVM 远程连接失败处理

    今天在使用JConsole进行远程连接时,发现IP和端口在Windows下是可以远程telnet的,但是,使用JConsole时却无法连接. 我的环境如下: Windows下运行JConsole,准备 ...

  4. jconsole监控远程linux tomcat运行情况的配置 (转)

    来自:http://zhumeng8337797.blog.163.com/blog/static/100768914201242494649455/ 步骤如下: 1.编辑tomcat/bin/cat ...

  5. 服务器jvm参数配置

    Eclipse崩溃,错误提示: MyEclipse has detected that less than 5% of the 64MB of Perm Gen (Non-heap memory) s ...

  6. 本地win下JConsole监控远程linux下的JVM

    环境:服务器端: Linux + jdk1.7.0_75 + tomcat 7本地: Win + jdk1.7.0_55 一.修改/etc/hosts文件 hostname -i 如果显示127.0. ...

  7. Jconsole/jvisualvm远程监控weblogic中间件配置

    1.进入linu操作界面,进入到启动服务目录下 2.选择要监控的服务的启动项,进入到编辑状态(注意:要先将该文件进行备份),如下图所示 3.修改USER_AGRS域,添加如下内容,注意修改IP USE ...

  8. SecureCRT远程连接Linux服务器及相关配置

    这里的连接采用的是SSH2协议,关于SSH2协议可百度 一.连接不上可能的原因 1)服务器防火墙iptables /etc/init.d/iptables stop 2)SSH服务有问题 3)客户端到 ...

  9. 一个性能较好的JVM参数配置

    一个性能较好的web服务器jvm参数配置: -server//服务器模式-Xmx2g //JVM最大允许分配的堆内存,按需分配-Xms2g //JVM初始分配的堆内存,一般和Xmx配置成一样以避免每次 ...

随机推荐

  1. 洛谷.4234.最小差值生成树(LCT)

    题目链接 先将边排序,这样就可以按从小到大的顺序维护生成树,枚举到一条未连通的边就连上,已连通则(用当前更大的)替换掉路径上最小的边,这样一定不会更差. 每次构成树时更新答案.答案就是当前边减去生成树 ...

  2. Python3NumPy——常用函数

    Python3NumPy的常用函数 1. txt文件 (1) 单位矩阵,即主对角线上的元素均为1,其余元素均为0的正方形矩阵. 在NumPy中可以用eye函数创建一个这样的二维数组,我们只需要给定一个 ...

  3. BZOJ4374 : Little Elephant and Boxes

    设$f[i][j][k]$表示前$i$个物品买了$j$个,消耗$k$个钻石,最少花多少钱,可以通过简单的DP求出. 枚举拥有的钻石数以及最多能购买的物品数的下界,那么钱数的下界是定值. 将$n$个箱子 ...

  4. 如何查看jdk和eclipse是几位的(eclipse快捷键)

    查看jdk public class rr{   public static void main(String[] args)   {String arch = System.getProperty( ...

  5. git 快照及分支

    分支介绍 分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN. 如果两个平行宇宙互不干扰,那对现在的你也没啥影响.不过,在某个时间点,两个平 ...

  6. VS2008 编译 libpng库

    一.下载libpng和zlib http://sourceforge.net/projects/libpng/ http://sourceforge.net/projects/libpng/files ...

  7. db2 系统表

    SYSIBM: 基本系统编目,不建议直接访问SYSCAT: 默认授权给Public组.只读编目视图,一般通过这个来获取编目信息SYSSTAT: 可更新编目视图,会影响优化器的优化策略SYSFUN: 用 ...

  8. CSS属性级Hack

     CSS属性级Hack    color:red; /* 所有浏览器可识别*/   _color:red; /* 仅IE6 识别 */   *color:red; /* IE6.IE7 识别 */   ...

  9. 机器学习笔记(4):多类逻辑回归-使用gluton

    接上一篇机器学习笔记(3):多类逻辑回归继续,这次改用gluton来实现关键处理,原文见这里 ,代码如下: import matplotlib.pyplot as plt import mxnet a ...

  10. Android NDK 使用自己的共享库(Import Module)

    LOCAL_PATH := $(call my-dir)//标准mk语句,指编译路径,所有mk文件第一句都是这个 /**这个模块表示引用了一个本地的静态库include $(CLEAR_VARS) / ...