【发布时间】:2013-03-22 08:53:35
【问题描述】:
JMX 应用程序可以支持的 MBean 的最大数量是多少?如果有,那是什么?
提前致谢。
【问题讨论】:
标签: java monitoring jmx max mbeans
JMX 应用程序可以支持的 MBean 的最大数量是多少?如果有,那是什么?
提前致谢。
【问题讨论】:
标签: java monitoring jmx max mbeans
我使用的是一个相当大的多租户应用程序。我们更改了与库的交互,最终每个租户都有多个 MBean。这会导致大量 MBean 注册(数万)。我们观察到,就注册 bean 的时间而言,这开始曲棍球棒的速度非常快(在 2,000 时需要几秒钟)。我们在 mbean 注册中观察到很多线程阻塞,具体来说:
addAllMatching 和 matchKeys 似乎会遍历所有条目,而不是使用 Map.get。另外两个是锁获取或同步。
我们有大量空闲堆,CPU 使用率是正常的 (3-5%)。我们应用程序的其他部分表现正常。简而言之,随着 MBean 的数量以指数方式增长,围绕创建 MBean 存在争议。所有这些都在 JDK 11 上。
更糟糕的是,我们禁用了 JMX,问题仍然存在。解决方案涉及确保库不会尝试通过配置注册 mbean。
简而言之:是的,在 ~2000 年之后添加 MBean 变得不切实际。我没有在不同的环境中对此进行过测试,因此个人体验可能会有所不同。
【讨论】:
不,您只受分配给 JVM 的堆的限制。
【讨论】: