VisualVM无法分析;连接和其他选项卡工作,但Sampler选项卡给出:“无法创建JMX连接”

时间:2013-06-20 18:48:38

标签: amazon-ec2 profiling visualvm jvisualvm

我正在尝试使用VisualVM来分析在EC2中运行的应用程序。 VisualVM连接到远程计算机,并向我显示Overview,Monitor和VisualGC选项卡(带有数据),但是当我选择Sampler选项卡时,我得到:

不可用。无法创建与目标应用程序的JMX连接。使用“添加JMX连接”操作附加到应用程序。

我尝试添加JMX连接(到EC2公共地址,以及应用程序启动的JMX端口)无济于事。

我可以在VisualVM Overview选项卡中看到我已经设置了应用程序的jmxsettings(并且通过扩展,VisualVM可以看到这些设置):

-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9010
-Dcom.sun.management.jmxremote.local.only=false
-Dcom.sun.management.jmxremote.authenticate=false

我正在使用EC2安全模型,它将所有端口从EC2打开到我的本地计算机。 我在两台机器上运行完全相同的JVM。 我在EC2机器上运行jstatd。

不确定还有什么可以尝试。

2 个答案:

答案 0 :(得分:1)

您使用SSL身份验证吗?如果不想使用它,请尝试替换

-Dcom.sun.management.jmxremote.local.only=false

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

答案 1 :(得分:0)

布赖恩,

您可以从本地jvisualvm连接到EC2 JMX端口,而无需打开EC2 JMX端口。我这样做是使用ssh隧道。在本地计算机上运行以下命令:

ssh -i <aws .pem key>  ec2-user@<ec2-ip> -v -D 9010

然后在jvisualvm中,转到工具 - &gt;选项 - &gt;网络并选择手动代理设置并在下面输入:

Socks Proxy:  localhost  Port: 9010

无代理主机下保留任何内容,然后单击“确定”。

然后选择localhost并右键单击添加JMX连接并输入localhost:9010,您就完成了:)