【问题标题】:Is a good idea to enable jmx (lambda probe) on a production server?在生产服务器上启用 jmx(lambda 探针)是个好主意吗?
【发布时间】:2010-09-23 17:53:51
【问题描述】:

我们在运行在 Sun VM 1.5.0_06-b05 上的 Tomcat 5.5.17 上部署的 Web 应用程序遇到了一些速度变慢的问题,而且我们的托管公司没有提供足够的数据来发现问题。

我们正在考虑在生产服务器上安装lambda probe,但它需要启用 JMX (com.sun.management.jmxremote) 才能获取内存和 CPU 统计信息。

启用 JMX 会导致严重的性能损失吗?

如果我们启用 JMX,我们是否会打开任何安全漏洞?如果我们只启用对 JMX 的本地访问,是否需要设置安全身份验证?

是否有人使用相同的(tomcat + lambda 探针)在生产中没有问题?

更新

查看答案似乎单独启用 JMX 不会对 VM 产生重大开销。如果附加到 VM 的监控应用程序(无论是 JConsolelambda 探针 还是任何其他应用程序)过度投入轮询,则可能会产生额外的工作。

【问题讨论】:

    标签: java performance security tomcat jmx


    【解决方案1】:

    JMX 只是一个套接字,它等待连接并允许外部进程访问无论如何收集的数据。这样做的惩罚通常非常低(当然,除非你用请求敲击 JMX 服务器)。

    JMX 允许您深入了解 Java VM。有一些命令可以运行 GC 并将其关闭。也就是说,JMX 提供了一种使用公钥和身份验证的安全连接模式。详情请阅读文档。

    【讨论】:

    • 如果我们只启用对 jmx 的本地访问,我是否需要设置安全身份验证?
    • 这取决于安装在同一台计算机上的所有其他内容。如果黑客可以闯入其他任何东西,他们将拥有本地访问权限。
    【解决方案2】:

    这取决于 JMX 实现以及您想要监控的东西的成本。 我现在至少有一个 JMX 应用程序,它具有比较高的内存开销。

    【讨论】:

    • “JMX 实现”是什么意思?我说的是启用 Sun JVM jmx 以使用系统属性 com.sun.management.jmxremote 进行监控
    【解决方案3】:

    您可以使用安全身份验证消除安全漏洞。仅保持 JMX 服务就绪不会产生任何重大开销,通常是一个好主意。有一个关于这个的基准here

    【讨论】:

    • 如果我们只启用对 jmx 的本地访问,我是否需要设置安全身份验证?
    • 这取决于很多事情,例如服务器上是否有其他用户以及应用程序的重要性。我至少会在任何生产服务器中启用密码身份验证。
    【解决方案4】:

    我们在生产服务器中使用 lambda 探针,我们没有发现任何重大开销。我可以推荐将探针作为可用于生产的可靠产品(Tomcats 5.5 和 6.0、JDK 5 和 JDK 6)。

    【讨论】:

      【解决方案5】:

      JMX 的开销很低,您可以通过使用 SSL 和身份验证来修复安全性。设置-Dcom.sun.management.jmxremote.ssl=true和-Dcom.sun.management.jmxremote.authenticate=true

      有关设置证书等的更多信息,请参阅此处here

      当您开始检测代码时,开销成为一个问题。开销可能很大,并且检测可能会影响应用程序的行为。你不会看到你得到什么,即所谓的heisenberg effect

      如果您想要低开销,我会使用 JRockit 附带的工具。他们捎带 JVM 一直收集的信息。 JVM 会统计哪些方法运行得最多,以决定它应该优化哪些方法。 JVM 还跟踪内存使用/模式以决定选择哪个 gc-stategy。 JRockit 将此类数据公开给 JRockit 工具,而不会增加您通常会从单独的 JMVTI-agent 获得的检测开销。

      【讨论】:

        猜你喜欢
        • 2017-08-15
        • 1970-01-01
        • 2020-05-01
        • 2010-10-19
        • 2016-02-24
        • 1970-01-01
        • 2015-08-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多