`
s_wswang
  • 浏览: 8089 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

java服务端远程监控辅助参数

阅读更多
在我们测试过程中,经常看到程序中有内存溢出的现象,这时只通过报错信息来查问题,消耗的时间会很长,我们应该采用更科学的方法,就是在运行文件里加上JDK支持的运行参数。
以smsServer为例,在run.sh文件加入以下参数:
nohup java -Xms2048M -Xmx2048M -Dcom.sun.management.jmxremote.port=1030 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false  -XX:+DisableExplicitGC -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:log/gc.log com.sms.sms.SmsServer &

(1)远程监控参数
-Dcom.sun.management.jmxremote.port=1030
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false

这三个参数配置了之后,可以使用jconsole或JvisualVM在我们本地电脑或其他服务器远程监控程序的运行状态;如果没有配置就只能在程序所在服务器上开监控。
这两个工具,在jdk1.6_20之后有支持,在bin目录里,请自行查找。

(2)内存溢出打印日志
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=log/outofmemdump.log

这两个参数,是在程序出现内存溢出的时候,它就会在程序的log目录下生成内存堆栈日志。这个日志通过MemoryAnalyzer来解析,查看内存在何处出现泄漏。

(3)GC垃圾回收日志
-XX:+DisableExplicitGC
-verbose:gc -XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-Xloggc:log/gc.log

GC是java程序执行垃圾回收的动作,在执行过程中,程序会处于不工作状态;一旦每次执行时间过长,会大大降低网关的处理性能。
这四个参数,是记录程序运行过程中每一次执行垃圾回收动作的日志。这个日志通过gcviewer来解析,查看程序中执行GC的频繁度、耗时。

配置远程方法:
通过JMX连接远程机器, 需要经过下面的配置:
1. 修改远程机器JDK配置文件(被监控的机器)
   a.进入JAVA_HOME\jre\lib\management\目录
   b.拷贝jmxremote.password.template这个文件到当前目录, 并改名为jmxremote.password
   c.打开jmxremote.password文件,去掉 # monitorRole  QED 和 # controlRole  R&D 这两行前面的注释符号
2.在项目启动文件bat中,
java命名后加上 
     -Djava.rmi.server.hostname=192.168.0.237
    -Dcom.sun.management.jmxremote.port=18999
    -Dcom.sun.management.jmxremote.ssl=false
    -Dcom.sun.management.jmxremote.authenticate=false

3. 客户端VisualVM配置 (我客户端用的是WinXP).
     a.直接反键点击Remote,选择Add Remote Host...
     b.在弹出的界面中输入远程机器的IP地址(192.168.0.237),这个IP地址会加入到Remote节点下.
     c.反键点击这个IP地址,选择Add JMX Connection, 在弹出的界面中输入刚配置的端口号(18999), 这个连接会加入到该IP节点下.
     d.反键点击这个连接,选择Open.


分享到:
评论

相关推荐

    JAVA上百实例源码以及开源项目

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    JAVA上百实例源码以及开源项目源代码

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    java开源包4

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包101

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包11

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包6

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包9

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包8

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包5

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包10

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包1

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包3

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包2

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包7

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    Java资源包01

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    在线考试系统文献综述

    为了整个系统的安全和维护的方便,在系统中包含了管理模块,设置有关参数,以及对系统进行必要的监控。只有系统管理员才有该模块的操作权。  四、论题的总结 随着Web技术在各行各业的广泛...

Global site tag (gtag.js) - Google Analytics