导航:首页 > 编程语言 > 连接jstatd

连接jstatd

发布时间:2024-10-20 22:37:15

Ⅰ jvisualvm的使用

1.jvisualvm在安装完jdk的时候就已经存在了,放在jdk安装目录bin下面

2.jvisualvm的使用

/usr/local/java/bin/jvisualvm & 

3.监控本地和监控远程

1)监控本地:

标签介绍:

概述:显示的是该服务器的启动和系统参数,可以通过与服务器的实际参数进行对比查看是否有内存溢出

监控:显示的是当前系统的CPU、内存、类和线程的相关资源的使用情况。其中"堆mp"可以查看堆的详细状态,包括堆的概况,里面所有的类,还能点进具体的一个类查看这个类的状态。

线程:能够显示线程的名称和运行的状态,在调试多线程时必不可少,而且可以点进一个线程查看这个线程的详细运行情况

抽样器:(可针对cpu和内存进行抽样监控)

2).远程tomcat监控

1)修改修改 /{tomcat path}/bin/catalina.sh, 找到第一个没注释的JAVA_OPTS,在前面添加

2)将8099端口开放---->添加防火墙

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8099 -j ACCEPT

重启防火墙---->/etc/init.d/iptables restart 

3)jvisualvm添加远程tomcat监控

3)远程java应用程序(非tomcat):

方法1:(在启动的时候添加启动参数)

nohup java -Dcom.sun.management.jmxremote 

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

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

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

-Djava.net.preferIPv4Stack=true 

-Djava.rmi.server.hostname=192.168.9.174  -jar monitor_tuning-0.0.1-SNAPSHOT.jar &

注意端口号9005要开放,添加防火墙 !

方法2:使用jstatd

1)在$JAVA_HOME/bin目录下新建一个文件jstatd.all.policy(名称随意),内容如下:

grant codebase "file:/usr/local/java/lib/tools.jar" { 

   permission java.security.AllPermission; 

};

2)然后执行

 jstatd  -J-Djava.security.policy=jstatd.all.policy  -J-Djava.rmi.server.hostname=192.168.9.174  -p 1099  &

在jvisualvm里面添加远程主机 192.168.9.174,然后右键添加jstatd连接,端口默认。jvisualvm即可扫描出所有正在运行的JVM,点击即可监控。

注意:此处需要添加防火墙(此处好多文章都没有说关于防火墙的问题)

两种方法比较:

1)jmx是jvm自身提供的一个标准的jmx管理功能,client支持度非常好,jvm监控工具基本上都会支持这种连接方式。而且只要配置几个简单的选项就可以使用了,不需要单独启动一个第三方的只用来监控连接的应用程序

2)jstatd是jdk提供的一个单独的工具,一个主机只需要运行一个jstatd就可以监控主机上所有的java application,而因为jmx是集成在jvm中,如果主机上有多个java应用程序需要监控,需要每个java应用程序配置相应的jmx选项,而且远程服务端口不能相同,client监控时也需要与每个java应用程序建立单独的连接

3)java应用程序启动时如果没有配置相应的jmx选项,则在运行周期内都无法远程监控应用程序,这可能会丧失定位问题的机会。而jstatd需要监控时,可以随时运行并进行监控

4) 在jvisualvm中,只有通过jstatd连接才能使用visualGC插件功能

5)jstatd server的端口是随机选择的,在有些情况下可能无法使用。比如我司的办公区域与生产区域之间网络设置了防火墙,只允许某个范围的端口通过,这是公司级的,某个团队无法修改防火墙策略。同时办公区域也不能直接ssh访问生产区域服务器,必须经过一个relay,也不能使用jstatd over ssh的方式。个人觉得jstatd不能在启动时显示指定服务的端口是它的一个槽点

4.插件安装:

参考文章:https://www.cnblogs.com/looyee/articles/11065093.html

Ⅱ 如何用VisualVM连接远程Tomcat

1、设置Tomcat的JAVA_OPTS参数:
JAVA_OPTS="$JAVA_OPTS
-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=9090
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=10.154.252.108"

此处IP填的是所在远程机器的IP(hostname -i ),需要确保这个端口没程序占用。
可以直接把这个参数写入到catalina.sh文件中。

2、添加JMX连接,并填入IP和刚刚设置的端口。

连接完成之后,监视、线程、概述选项卡可以正常显示,也可以添加插件,选择“工具 - 插件”。可以添加新的插件,此处我们添加了一个名叫 Visual GC 的插件,用于监控JVM 的垃圾回收情况。

4、美中不足的是, Visual GC 并不买账,无法显示。

Visual GC uses the jvmstat technology to gather data from the monitored application. This means that the monitored application must either run locally or there must be a jstatd agent up and running on the remote system. For remote applications added using the JMX connection you will only see the "Not supported for this JVM" message - there's no jvmstat available.
引用自:https://blogs.oracle.com/nbprofiler/entry/visual_gc_plugin_2_0
使用JMX监控的功能不支持Visual GC,需要以jstatd的方式来监控。

5、使用Jstatd方式关联监控
Jstatd方法是利用后台的RMI守护进程来实现对远程JVM的监控。启动jstatd不复杂,
找到tomcat所在机器的Java目录,在bin目录下首先创建一个监控策略文件:
?

1
2
3
4

vi jstatd.all.policy
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};

把"${java.home}/../"替换成JAVA安装目录。然后执行如下命令启动jstatd:jstatd -J-Djava.security.policy=jstatd.all.policy

查看jstatd是否启动:
[root@vm-10-154-252-108 bin]# jps -l 127.0.0.1
8618 sun.tools.jps.Jps
7516 sun.tools.jstatd.Jstatd
15815 org.apache.catalina.startup.Bootstrap
7670 org.apache.catalina.startup.Bootstrap
21315 org.apache.catalina.startup.Bootstrap
21481 org.apache.catalina.startup.Bootstrap
11470 org.apache.catalina.startup.Bootstrap
15649 org.apache.catalina.startup.Bootstrap
15732 org.apache.catalina.startup.Bootstrap
21398 org.apache.catalina.startup.Bootstrap
11634 org.apache.catalina.startup.Bootstrap

5、删除VisualVM之前对Tomcat的监控,添加“远程主机”,输入主机IP,通过“高级设置”可以看到远程主机默认是jstatd方式监控的。

点击确定,将会列出该机器上所有的可监控的Java程序,

找到我们需要监控的程序PID,双击:

Ⅲ 在新建虚拟机时出现问题

JConsole

JConsole 图形用户界面是一种符合 Java 管理扩展(JMX)规范的监视工具。JConsole 使用 Java 虚拟机 (Java VM) 的广泛检测来提供有关在 Java 平台上运行的应用程序的性能和资源消耗的信息。

使用方法 本地

Ⅳ JAVA7 32位如何下载

1、打抄开网络搜索Java7,选择第一袭项进入下载的页面:

Ⅳ 尝试连接到gc配置不可用

连接到gc配置搏或不可用解决步骤如下。
1、首先修改远程服务器上java设置。
2、找到jdk下的/jre/lib/security/java.policy文件,打开此文件,在文件末尾的括号前添加基稿伍permissionjava.security.AllPermission。后保存。
3、在jdk/bin目录下运行命令窗口输入:jstatd-J-Djava.security.policy=jstatd.all.policy-J-Djava.rmi.server.hostname=192.168.2.85-p2030,接着运行即可。
4、本地启动VisualVM,在配置JMX时已经添加过服务器节点,如果敬并配置正确,通常gc会自动检测到jstatd连接并添加节点。

阅读全文

与连接jstatd相关的资料

热点内容
国内编程培训机构有哪些 浏览:883
云服务器安装linux服务器 浏览:200
爱好编程考什么证书 浏览:857
如何查看class文件 浏览:579
java拆分中文字符串 浏览:471
app与pc的区别 浏览:814
柳叶刀文章的补充数据在哪里看 浏览:416
excel怎么把数据设置成竖列 浏览:263
gl国家代码 浏览:122
主页数据分析里面其它代表什么 浏览:96
无线网络书籍 浏览:464
word文件中间出现夹层 浏览:452
怎样设置文件保存图片 浏览:211
如何应对网站重做 浏览:584
巫师3全屏闪退找不到文件 浏览:777
btserver是什么文件 浏览:420
哈斯机床编程有什么不同 浏览:902
哪里可以找到上海贸易数据 浏览:609
合肥哪些好的编程 浏览:96
word页眉加页码 浏览:555

友情链接