在JMX MBean的最大数量

问题描述 投票:1回答:2

是否有一个JMX应用程序可以支持的MBean的最大数目?如果有,那是什么?

提前致谢。

java monitoring jmx max mbeans
2个回答
0
投票

不,你被分配到你的JVM堆的限制。


0
投票

我有一个相当大的应用程序,多租户工作。我们改变了我们的互动与图书馆和我们最终每个租户几个MBean。这导致大量的MBean注册的(数以万计)。我们观察到,这个漂亮的快速启动曲棍球棒的时间来注册一个bean(2,000它需要几秒钟)条款。我们观察到了大量线程阻塞的的mbean登记内,特别是:

  • com.sun.jmx.mbeanserver.Repository.contains(对象名):461
  • com.sun.jmx.mbeanserver.Repository.addAllMatching(地图,设置,ObjectNamePattern):229
  • com.sun.jmx.mbeanserver.Repository.addMBean(DynamicMBean的,对象名,RegistrationContext):415
  • com.sun.jmx.mbeanserver.Repository.ObjectNamePattern.matchKeys(对象名):190

addAllMatchingmatchKeys出现过的所有条目进行迭代,而不是使用Map.get。另外两个是锁获取或同步。

我们有大量的空闲堆,并且CPU使用率是标称值(3-5%)。我们的应用程序的其他部分正常表现。总之,有围绕创建MBean的争夺,作为MBean数增长,以指数方式。所有这一切都是在JDK 11。

更糟的是,我们无法使用JMX和问题依然存在。该解决方案涉及到确保该库没有试图通过配置来注册的MBean。

简而言之:是的,它变得不切实际〜2000年后添加的MBean。我没有在不同的环境下进行试验这一点,所以个人的经验可能会有所不同。

© www.soinside.com 2019 - 2024. All rights reserved.