Ste*_*ker 3 java jmx visualvm jstatd
我试图通过jstatd监视服务器上运行的所有Java进程.我已经设置足够的,我可以连接VisualVM并查看所有正在运行的进程.大多数显示器工作正常,但某些事情(尤其是CPU使用率和MBean)不会显示.相反,它说:
MBeans浏览器
数据不可用,因为无法建立与JMX代理的JMX连接.
我认为问题是应用程序必须通过jstatdRMI注册表而不是本地注册表"宣布" ,所以我尝试了以下(根据这些建议),但它仍然不会显示.我尝试的代码如下:
public class JmxRmiConnectorTest {
public static void main(String[] args) throws Exception {
Registry rmiRegistry = LocateRegistry.createRegistry(9994);
String svc =
"service:jmx:rmi://localhost:9994/jndi/rmi://localhost:1099/connector";
MBeanServer mbeanServer = ManagementFactory.getPlatformMBeanServer();
JMXServiceURL url = new JMXServiceURL(svc);
RMIConnectorServer rmiServer = new RMIConnectorServer(url, null, mbeanServer);
rmiServer.start();
Thread.sleep(100000);
rmiServer.stop();
}
}
Run Code Online (Sandbox Code Playgroud)
当通过jstatd查看时,如何让我的MBean和CPU使用率显示在VisualVM中?
jstatd与JMX无关.Jstatd是代理Jvmstat.要获得MBean和CPU使用率,您还需要启用JMX.有关更多详细信息,请参阅JMX远程监视和管理.一旦启用了JMX,VisualVM将自动检测(通过jvmstat)它也可以使用JMX,它将在一个地方显示来自jvmstat和JMX的数据.