8

Oracle/Sun 说只要你不在生产机器上本地运行它就可以了? http://download.oracle.com/javase/1.5.0/docs/guide/management/jconsole.html

注意:使用 jconsole 监控本地应用程序对于开发和原型设计很有用,但不建议用于生产环境,因为 jconsole 本身会消耗大量系统资源。建议远程监控将 jconsole 应用程序与被监控的平台隔离开来。

您是否曾经在生产环境中启用它并经历过任何性能影响?

4

2 回答 2

6

尽管在生产环境中强烈不建议这样做,但通过以下选项启用无需身份验证或加密的远程 jmx 几乎没有性能影响:

-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9999 
-Dcom.sun.management.jmxremote.authenticate=false 
-Dcom.sun.management.remote.ssl=false

如果您打开 SSL 并强制进行身份验证,则会增加一点性能成本:

-Dcom.sun.management.jmxremote.authenticate=true 
-Dcom.sun.management.remote.ssl=true
-Dcom.sun.management.jmxremote.password.file=jmxremote.password

以上 2 个场景只会在您的生产 JVM 中启动一个 mbean 服务器和一个 RMI 连接器服务器。远程连接到这个 JVM 会更昂贵,但这完全取决于您观看的视图(例如,GC 视图需要收集所有数据并将其传输回 jConsole 客户端,这不是免费的),以及您执行的操作远程调用。

您可以从以下博客文章中阅读更多统计信息:

于 2011-07-05T04:01:49.960 回答
1

您可以使用 jconsole 使用暴露的 JMX 端口远程连接到生产服务器......但是在不同的环境中复制场景并在那里运行 jconsole 总是更好......

于 2011-07-05T03:44:25.953 回答