[英]Maximum number of MBeans in JMX
JMX应用程序可以支持的MBean数量上限吗? 如果有,那是什么?
提前致谢。
不,您仅受分配给JVM的堆的限制。
我使用的是一个多租户的大型应用程序。 我们更改了与库的交互,最终每个租户得到几个MBean。 这导致大量的MBean注册(数万个)。 我们观察到,在开始注册一个bean的时间方面,曲棍球棒的启动速度非常快(2,000个曲棍球需要几秒钟)。 我们在mbean注册中观察到很多线程阻塞,特别是:
addAllMatching
和matchKeys
似乎要遍历所有条目,而不是使用Map.get
。 另外两个是锁获取或同步。
我们有大量的可用堆,并且CPU使用率是名义上的(3-5%)。 我们应用程序的其他部分运行正常。 简而言之,随着MBean的数量呈指数增长,创建MBean一直存在争议。 所有这些都在JDK 11上进行。
更糟糕的是,我们禁用了JMX,问题仍然存在。 解决方案涉及确保库不尝试通过配置注册mbean。
简而言之:是的,在2000年之后添加MBean变得不切实际。 我尚未在多种环境下进行测试,因此个人体验可能会有所不同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.