首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用JStat连接到远程JVM

无法使用JStat连接到远程JVM
EN

Stack Overflow用户
提问于 2017-06-22 04:38:28
回答 1查看 2.5K关注 0票数 2

通过Jstat 文档,jstat可以连接到本地和远程JVM。可以将URI形成为

代码语言:javascript
复制
 [protocol:][//]lvmid[@hostname[:port]/servername]

我有一个JVM运行在一个服务器(CentOS)上,启用了JMX -

代码语言:javascript
复制
xyz   23878     1  0 Jun01 ?        04:37:00 java -Xms1g -Xmx1g -XX:NewSize=512m -Xloggc:../9301/logs/gc.log -verbose:gc -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=../9301/logs/oom.log **-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=19301 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.local.only=false** -jar ../0.1.14/xyz-0.1.14.jar -serviceName <name> -dataCenter <name> servicePort 9301

我能够从我的本地机器连接到JVM,,使用JVisualVM,它使用一个2步进程-

  1. 提示通过默认端口1099 ->上的jstatd连接添加远程计算机,我能够这样做,并添加了服务器,以证明RMI注册表可用
  2. 在添加服务器之后,您可以在公开的端口->成功上向JMX添加JMX连接,因为JMX是由我在端口19301上的程序公开的,并且我能够查看详细信息。

然而,我不能使用jstat来实现同样的目的。

运行jstat -gc process_id@servername将给出以下异常-

代码语言:javascript
复制
RMI Registry not available at <servername>:1099
Connection refused to host: <servername>; nested exception is: 
    java.net.ConnectException: Connection refused

检查了网络上的各种来源,他们讨论了让jstatd运行,我认为这是运行的,因为VisualVM能够添加机器。

问题:如何在jstat命令中对vmid部件进行框架以进行连接

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-22 06:34:17

您需要在远程主机上运行jstatd才能使用jstat

仅运行RMI注册表是不够的。注册表只用于注册各种RMI服务。-Dcom.sun.management.jmxremote选项启动jmxrmi服务(适用于VisualVM),但jstat查找JStatRemoteHost服务。

启动jstatd后,使用jstat -options process_id@servername命令监视远程VM。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44690253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档