使用VisualVM监控远程服务器JVM(一)

配置visualvm需要注意的问题:

1,JDK的选择问题:

注意安装开发版的jdk

   development:这个版本的才有bin和jre

   running time 这个版本的只有jre(选择这个版本的会有些命令找不到,如jstatd)

(详见jdk章节)

2,不能开防火墙,否则会地动了也访问不了,全关就是全部允许(或者把要开的端口都开了)

3,自己新建的脚本

#!/bin/shexport  要独立成行不能和内容在一起

#!/bin/shexport 

JAVA_OPTS="$JAVA_OPTS -Xms512m -Xmx512m -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password -Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access" 

4,使用本地的visualvm连接远程:

1,跑起来了后,工具中装插件(一次不行多来几次

安好那个插件就是有这个功能tab,至于如这个界面又需要什么jar包,再另行在tab中配置,比如jconsole的使用

jtop.jar之后重启,在看tomcat,此时不在提示配置而是提示jmx不能用,换一个用户(controlRole(添加jmx)),之后新加jstatd出现的tomcatjconson可用

不同的插件只能用不同的身份登录看到的插件功能不同

2,jmx连通了也需要装丰富的插件

3,安装好后重启

4,每次重启(visual vm)后jstatd要重新启动,这是监听的端口会变,需要重新在jstatd设置

重新

cd $JAVA_HOME/bin

./jstatd -J-Djava.security.policy=all.policy &

netstat -anp | grep *jstatd

加好jstatd监听后,tomcat自动出来(上述命令执行好后,启动visualvm自动加入jstatd-tomcat

5,tomcat设置开启oom生成dump

开发和使用Unix程序时, 有时程序莫名其妙的down了, 却没有任何的提示(有时候会提示core dumped). 这时候可以查看一下有没有形如core.进程号的文件生成, 这个文件便是操作系统把程序down掉时的内存内容扔出来生成的, 它可以做为调试程序的参考.

core dump又叫核心转储, 当程序运行过程中发生异常, 程序异常退出时, 由操作系统把程序当前的内存状况存储在一个core文件中, 叫core dump.

gdb -c core文件路径 [应用程序的路径]

进去后输入where回车, 就可以显示程序在哪一行当掉的, 在哪个函数中.

有时候程序down了, 但是core文件却没有生成. core文件的生成跟你当前系统的环境设置有关系, 可以用下面的语句设置一下, 然后再运行程序便成生成core文件.core文件生成的位置一般于运行程序的路径相同, 文件名一般为core.进程号

猜你喜欢

转载自yuhuiblog6338999322098842.iteye.com/blog/2391536