是否启用JConsole远程监控会影响生产中的系统性能?

时间:2011-07-05 03:38:36

标签: java jvm jconsole

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

  

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

您是否曾在生产环境中启用它并且遇到任何性能影响?

2 个答案:

答案 0 :(得分: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

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

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

答案 1 :(得分:1)

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