java - Hazelcast Mancenter 的 CPU 使用率上升

标签 java hazelcast

我有:
a) 1 台服务器(4vcpu,8GB)运行 hazelcast 节点,
b) 1 台服务器(4vcpu,8GB)在 tomcat 7 上运行 hazelcast mancenter。
两台服务器都在同一个本地网络中。

我测试了两种情况:
场景 1) 我已经开始 a) 和 b)。没有传输数据。 a) 上的 CPU 使用率为 0-10%。
场景 2) 我已经开始 a) 和 b)。我已经传输了大量数据以在 a) 上进行处理,并等到它完成(2 小时)。当没有数据需要处理时,我检查了a)上的CPU使用率——它是30-110%(即使在8小时之后)。当我停止 b) 上的 mancenter 时,a) 上的 cpu 下降到 0-10%。再次启动 mancenter 后,它上升到 30-110%。

我认为1)和2)之后a)的cpu使用率应该是相同的。

我分析了 jvm,并注意到一个名为 MC.State.Sender 的线程在场景 1 中处于非 Activity 状态,而在场景 2 中处于 Activity 状态。这是否会耗尽 CPU?这可以通过配置来限制吗?

提前感谢您的帮助。

以下是来自 VisualVM 的线程转储(我还可以提供 cpu profiler 快照):
scenario1 thread dump
scenario2 thread dump

最佳答案

我在使用 Hazelcast 3.4 和 Mancenter 3.4.1 时注意到了这个问题。 将 Hazelcast 库更新到 3.4.1 后,我无法重复该问题。
我进行了整整一周的不同测试,问题没有再次出现。
解决方案是让mancenter和Hazelcast lib保持在同一版本。

关于java - Hazelcast Mancenter 的 CPU 使用率上升,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28894168/

相关文章:

java - 当年龄不在范围内时抛出用户定义的异常

Java QueryDSL 和 Gradle Kotlin DSL

java - Hazelcast 缓存中有类似 Compare-And-Set 的东西吗?

Hibernate 延迟加载和 Hazelcast

ehcache - 使用分布式缓存解决方案的开源应用程序

scala - Hazelcast 排序 IMap (Scala)

java - 使用 @DateTimeFormat 的日期时间解析问题

Java 等待所有线程完成

java - 如何使用具有私有(private)构造函数的类的实例?

java - Vertx3 - EventBus 在集群中不工作