Windows下使用Jconsole远程监控Linux系统中java服务器资源占用情况
1、首先需要停止正在运行的服务:resin-XXXstop
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-XXXstart
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->转换->DOSTOUNIX)的形式并保存,可解决文件编码不对引起的bash
脚本无法执行的问题
[root@localhostbin]#./startup.sh
./startup.sh:/usr/local/tomcat-6.0.29/bin/catalina.sh:/bin/sh^M:bad
interpreter:没有那个文件或目录
./startup.sh:line64:/usr/local/tomcat-6.0.29/bin/catalina.sh:成功
重启tomcat