JMX应用程序可以支持的最大MBean数量是多少?如果有,那是什么?
提前致谢。
答案 0 :(得分:0)
不,您只受限于分配给JVM的堆。
答案 1 :(得分:0)
我处理的是一个多租户的大型应用程序。我们更改了与库的交互,最终每个租户得到几个MBean。这导致大量的MBean注册(数万个)。我们观察到,在开始注册一个bean的时间方面,曲棍球棒的启动速度非常快(2,000个曲棍球需要几秒钟)。我们在mbean注册中观察到很多线程阻塞,具体是:
addAllMatching
和matchKeys
似乎遍历所有条目,而不是使用Map.get
。另外两个是锁获取或同步。
我们有大量的可用堆,并且CPU使用率是名义上的(3-5%)。我们应用程序的其他部分运行正常。简而言之,随着MBean的数量呈指数增长,创建MBean一直存在争议。所有这些都在JDK 11上。
更糟糕的是,我们禁用了JMX,问题仍然存在。解决方案包括确保库不尝试通过配置注册mbean。
简而言之:是的,在2000年之后添加MBean变得不切实际。我尚未在多种环境下进行测试,因此个人体验可能会有所不同。