【问题标题】:Overhead with multiple MBeans多个 MBean 的开销
【发布时间】:2013-05-17 14:07:12
【问题描述】:

拥有多个 MBean 会带来性能问题吗?

试图跟踪应用程序中运行的多个事务。我可能会结束创建 30 多个 MBean。
我真的很担心它是否会与 JVM 太健谈。

【问题讨论】:

    标签: java jmx mbeans


    【解决方案1】:

    拥有多个 MBean 会带来性能问题吗?

    不,MBean 本身只是 JMX 访问应用程序的存根。如果您发送回大量数据(例如 100 个属性或大型数组或其他东西)或每秒发出大量请求,您可能会遇到性能问题。但就其本身而言,mbean 通常是单例的,它们本身绝不是性​​能下降器。

    我可能会结束创建 30 多个 MBean。我真的很担心它是否会与 JVM 过于健谈。

    同样,除非您以某种高速率从这些 mbean 请求数据,否则您应该没有问题。我们实际上有数百个 mbeans,并且没有发现它们的性能问题。

    【讨论】:

    • 如果第三方监控正在尝试这 30 多个 MBean,会怎样?是对 JVM 进行 30 多次单独调用,还是仅从监控工具调用一次以获取所有 MBean 的更新?
    • 很大程度上依赖于 3rd 方工具。我相信这是每个​​ mbean 的调用,是的。您可以在启用和不启用第 3 方工具@HimanshuYadav 的情况下运行性能测试吗?
    • 现在不行。问题是客户想要监控这些 MBean,并且在将来的某个时候我会开发客户特定的 MBean。我可以使用第 3 方工具进行测试,但找不到。尝试过 JavaMelody 和 VisualVM,但它们不轮询 JMX Bean,我总是必须刷新页面。已下载 Splunk,但无法为 JMX Beans 配置它:(
    • 您能建议我如何进行 MBeans 性能测试吗?我想我可以通过在 MBean 属性的 getter 中放置一个 sysout 来检查它是否按 mbean 调用。你怎么看?
    • Jconsole 可以轮询 JMX bean,但只能轮询它可以绘制的数字。这听起来有点像@HimanshuYadav 的过早优化。您的 mbean 不会成为问题,除非它们每隔一秒就被第 3 方工具击中。如果他们每分钟或按需轮询,那么就不会有问题。
    猜你喜欢
    • 1970-01-01
    • 2010-09-28
    • 1970-01-01
    • 1970-01-01
    • 2021-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-25
    相关资源
    最近更新 更多