【问题标题】:Is enabling JConsole remote monitoring affect system performance in production?启用 JConsole 远程监控会影响生产中的系统性能吗?
【发布时间】:2023-03-28 16:55:01
【问题描述】:

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

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

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

【问题讨论】:

    标签: java jvm jconsole


    【解决方案1】:

    虽然强烈不建议在生产环境中使用,但通过以下选项启用无需身份验证或加密的远程 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 客户端,这不是免费的),以及您执行的操作远程调用。

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

    【讨论】:

    • 感谢博客文章的链接。不知道为什么谷歌搜索没有为我挖掘出来。需要提高我的谷歌技能。
    【解决方案2】:

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

    【讨论】:

    • 我们从未在生产中使用过它。我们仅在负载测试期间在 QA/PRE-PROD 上使用它。只是想在尝试产品之前收集一些意见。
    猜你喜欢
    • 2015-02-08
    • 2012-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-04
    • 2017-02-15
    • 1970-01-01
    相关资源
    最近更新 更多