监控Linux环境下JVM应用内存的两种方法

来源:互联网 发布:网络赚钱方法大全 编辑:程序博客网 时间:2024/06/03 21:22

性能测试监控中,监控Linux环境下应用内存方法如下:

---------------------------------------------------------------------------------------------------------------------------

有两种方法:

方法一:使用 Xing+Putty方式监控 


获知待监控的Linux服务器:IP 用户、密码、端口 如(192.168.0.83 root/111111 端口9180) 
本地PC:B;应用服务器:A 
1)本地B安装工具“Xming-6-9-0-31-setup”,X server,一个SSH客户端 
2)本地B安装JDK:jdk-6u43-windows-x64 
3)本地B配置安装好的Xming,配置过程参见说明链接:http://www.zw1840.com/blog/zw1840/2008/10/putty-xming-linux-gui.html
4)SSH方式连接A,在A上启用SSH的X11 forwarding,方法是,查看 /etc/ssh/sshd_config 文件,修改X11Forwrding no 为 X11Forwrding yes 
5)双击启动步骤3)中创建的桌面快捷图标文件“Xming.display.0.xlaunch” 
6) SSH方式连接A,执行JDK安装目录/usr/java/jdk1.6.0_32/bin/下的运行程序jvisualvm,在打开的视图中选择已加载到本地的待监控程序 
7)可忽略本步骤-在本地B,进入JDK安装目录,运行bin目录下的程序jvisualvm 
8)如需同时监控不同环境下内存,重复步骤3)-6) 

以上步骤可显示加载到本地的待监控应用,可选择监控

可能遇到问题: 本地JDK无法打开 :原因未明 ,预计为本地JDK 安装问题。

备注的其他说明:
PS:确认监控服务的防火墙关闭 
service iptables status 查看防火墙状态 
service iptables stop 立即关闭防火墙 
查看防火墙:vi /etc/sysconfig/iptables 
编辑防火墙文件添加信任:-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 12345 -j ACCEPT 
/usr/local/tomcat/bin/startup.sh 启动tomcat 
netstat -an | grep 6969命令查看端口是否正常启动 ,返回信息为:tcp 0 0 :::6969 :::* LISTEN 
netstat -apn|grep 6969 查看端口为6969的进程ID ,返回信息为:tcp 0 0 :::6969 :::* LISTEN 25333/java


---------------------------------------------------------------------------------------------------------------------------



方法二:使用Jconsole远程方式监控 (出处:http://www.51testing.com/?uid-113838-action-viewspace-itemid-132703):  

    查看tomcat端口:ps -aux | grep tomcat 

    查看端口与进程ID:netstat -apn

    查看端口 :ps -aux |grep java 或 ps -aux |grep pid 

    关闭端占用:Kill;netstat -anp |grep 8080

1、首先需要停止正在运行的服务:resin-XXX stop 
2、然后在Linux的服务器启动项中添加如下信息: 
#pwd //显示当前目录常规显示路径   /home/apache-tomcat-6.0.37/bin 或/usr/local/tomcat/bin/catalina.sh 

# vi catalina.sh 添加如下内容: 

CATALINA_OPTS="-Djava.rmi.server.hostname=192.168.1.122  //也可编辑为 CATALINA_OPTS="$CATALINA_OPTS 

 -Dcom.sun.management.jmxremote

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

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

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

在这个前面添加以上 内容 # OS specific support. $var _must_ be set to either true or false.

3、重新启动服务resin-XXX start  如无法重启,需重启Linux:reboot 重启Tomcat :startup.bat
4、最后双击本机../jdk1.6/bin/jconsole.exe,启动Jconsole监控界面,在远程连接处输入:192.168.0.116:6969,输入Linux主机的用户名和密码;或连接出输入:service:jmx:rmi:///jndi/rmi://192.168.0.116:6969/jmxrmi 

//其中第一个参数可以用来设置欲连接的Linux机器的IP地址,该项必须设置,否则远程连接会因为解析到127.0.0.1出现连接失败的情况。 
//第三个参数是设置欲连接到Linux机器上的端口号,在不跟Linux中现有端口冲突的情况下,可随意设置该端口 

//所以如果不知道Linux机器的用户名和密码,也可以不输入,直接连接,由于Dcom.sun.management.jmxremote.authenticate=false,设置成了false。

为指定连接IP情况下可修改hosts文件

1)使用命令查看 hostname -i 如果显示为127.0.0.1 127.0.0.1 
2)修改/etc/hosts文件,将其第一行的“127.0.0.1 localhost.localdomain localhost”,修改为:“192.168.1.234 localhost.localdomain 
localhost”,其中,“192.168.1.234”为实际的服务器的IP地址。 

补充:由于配置了上述步骤2)文件,在停止tomcat的时,会由于上述配置的端口被占用而无法停掉。2种方式解决: 
(1)使用killall -9 java 杀掉所有的java进程。 
(2)在home/apache-tomcat--6.0.37/bin/catalina.sh中配置CATALINA_PID=pid,这样在停止tomcat的过程中,上述被占用的端口会自动被杀掉。

原创粉丝点击