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.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值