从命令行访问JVM属性

时间:2011-06-30 09:15:42

标签: jmx jboss5.x jdk1.6

我在RHEL5上的JDK1.6上运行了一些JBoss 5.1.0实例。我想从他们的VM访问heap / permgen / etc信息。

JBoss配置未在JVM上显式启用JMX以使用JConsole / JVisualVM进行远程访问。

我可以通过Twiddle访问JBoss相关信息,如果我在这台机器上有GUI,我可以通过运行JConsole / JVisualVM来访问这些信息(JDK 1.6允许在应用程序运行后连接这些客户端)已启动,即使没有com.sun.management选项)。

有没有办法在不重新启动这些虚拟机的情况下访问此信息?

我可以设想的方法是:

  • 使用Twiddle通过JBoss的JMX控制台访问此信息 - 如果可以的话,我应该传递什么来查找信息?
  • 使用命令行客户端以与JConsole相同的方式连接到正在运行的JDK。我知道cmdline-jmxclient,但我不知道它是否有能力。

1 个答案:

答案 0 :(得分:0)

解决方案是使用jstat

jstat -gccapacity -t 4994 5s

此行打印出垃圾收集器容量信息,以及每5秒进程4994的时间戳。

您需要成为正确的用户才能访问VM,因此对我来说,上述命令必须运行sudo -u jboss jstat ...

有关the documentation page的更多信息。