Oracle/Sun 说只要你不在生产机器上本地运行它就可以了? http://download.oracle.com/javase/1.5.0/docs/guide/management/jconsole.html
注意:使用 jconsole 监控本地应用程序对于开发和原型设计很有用,但不建议用于生产环境,因为 jconsole 本身会消耗大量系统资源。建议远程监控将 jconsole 应用程序与被监控的平台隔离开来。
您是否曾经在生产环境中启用它并经历过任何性能影响?
Oracle/Sun 说只要你不在生产机器上本地运行它就可以了? http://download.oracle.com/javase/1.5.0/docs/guide/management/jconsole.html
注意:使用 jconsole 监控本地应用程序对于开发和原型设计很有用,但不建议用于生产环境,因为 jconsole 本身会消耗大量系统资源。建议远程监控将 jconsole 应用程序与被监控的平台隔离开来。
您是否曾经在生产环境中启用它并经历过任何性能影响?
尽管在生产环境中强烈不建议这样做,但通过以下选项启用无需身份验证或加密的远程 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 客户端,这不是免费的),以及您执行的操作远程调用。
您可以从以下博客文章中阅读更多统计信息:
您可以使用 jconsole 使用暴露的 JMX 端口远程连接到生产服务器......但是在不同的环境中复制场景并在那里运行 jconsole 总是更好......