日期:2014-05-16  浏览次数:20568 次

Windows下使用Jconsole远程监控Linux系统中java服务器资源占用情况
1、首先需要停止正在运行的服务:resin-XXX stop
2、然后在Linux的服务器启动项中添加如下信息:
-Djava.rmi.server.hostname=192.168.1.122
-Dcom.sun.management.jmxremote 
-Dcom.sun.management.jmxremote.port=911
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
比如说我需要了解在压力测试过程中Linux系统中resin服务器的资源占用情况,那么我就可以在resin的启动项中加入上述信息,这样通过本机Windows中JDK的Jconsole来监控了。
其中第一个参数可以用来设置欲连接的Linux机器的IP地址,该项必须设置,否则远程连接会因为解析到127.0.0.1出现连接失败的情况。
如果不设置该项,也可以通过修改Linux的/etc/hosts文件,使hostname -i指向正确的IP,所以还是该选项更为方便。
第三个参数是设置欲连接到Linux机器上的端口号,在不跟Linux中现有端口冲突的情况下,可随意设置该端口
3、重新启动服务resin-XXX start
4、最后双击本机..\jdk1.6\bin\jconsole.exe,启动Jconsole监控界面,在远程连接处输入:192.168.1.122:911,输入Linux主机的用户名和密码,连接即可,因为第2点中的第5项-Dcom.sun.management.jmxremote.authenticate=false,设置成了false,所以如果不知道Linux机器的用户名和密码,也可以不输入,直接连接
综上所述,该问题就解决啦,用户Jconsole来监控java服务器的资源占用情况,非常方便直观高效。

linux下Tomcat配置:
在tomcat的bin目录下catalina.sh启动项中JAVA_OPTS被正式调用之前,添加如下代
码:

JAVA_OPTS="$JAVA_OPTS -server -Xms128m -Xmx512m -XX:PermSize=128m -

XX:MaxNewSize=256m -Djava.rmi.server.hostname=192.168.1.160 -

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

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

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

加入没有使用vi,而是用UE编辑,则保存需要转码(FILE->转换->DOS TO UNIX)的形式并保存,可解决文件编码不对引起的bash

脚本无法执行的问题
[root@localhost bin]# ./startup.sh
./startup.sh: /usr/local/tomcat-6.0.29/bin/catalina.sh: /bin/sh^M: bad

interpreter: 没有那个文件或目录
./startup.sh: line 64: /usr/local/tomcat-6.0.29/bin/catalina.sh: 成功

重启tomcat