Hazelcast Mancenter 使用率上升 cpu
Hazelcast Mancenter rises cpu usage
我有:
a) 1 台服务器 (4vcpu, 8GB) 运行 一个 hazelcast 节点,
b) 1 台服务器 (4vcpu, 8GB) 运行 tomcat 7.
上的 hazelcast mancenter
两台服务器都在同一个本地网络中。
我测试了 2 个场景:
场景 1)我已经开始了 a) 和 b)。没有数据传输。 cpu a) 的使用率为 0-10%。
场景 2)我已经开始了 a) 和 b)。我已经传输了大量数据以在 a) 上处理并等待它完成 (2h)。当没有数据要处理时,我检查了 a) 上的 cpu 用法 - 它是 30-110%(即使在 8 小时之后)。当我在 b) 上停止 mancenter 时,a) 上的 cpu 下降到 0-10%。再次启动mancenter后升至30-110%。
我认为 1) 和 2) 之后 a) 的 cpu 用法应该是一样的。
我分析了 jvm 并注意到一个名为 MC.State.Sender 的线程在场景 1 中处于非活动状态,而在场景 2 中处于活动状态。这是否会耗尽 cpu?这可以通过配置来限制吗?
提前感谢您的帮助。
这是来自 visualvm 的线程转储(我也可以提供 cpu 分析器快照):
scenario1 thread dump
scenario2 thread dump
我在使用 Hazelcast 3.4 和 Mancenter 3.4.1 时注意到了这个问题。
将 Hazelcast 库更新到 3.4.1 后,我无法重复这个问题。
我整整一周都在执行不同的测试,但问题没有再次出现。
解决办法是保持mancenter和Hazelcast lib在同一版本。
我有:
a) 1 台服务器 (4vcpu, 8GB) 运行 一个 hazelcast 节点,
b) 1 台服务器 (4vcpu, 8GB) 运行 tomcat 7.
上的 hazelcast mancenter
两台服务器都在同一个本地网络中。
我测试了 2 个场景:
场景 1)我已经开始了 a) 和 b)。没有数据传输。 cpu a) 的使用率为 0-10%。
场景 2)我已经开始了 a) 和 b)。我已经传输了大量数据以在 a) 上处理并等待它完成 (2h)。当没有数据要处理时,我检查了 a) 上的 cpu 用法 - 它是 30-110%(即使在 8 小时之后)。当我在 b) 上停止 mancenter 时,a) 上的 cpu 下降到 0-10%。再次启动mancenter后升至30-110%。
我认为 1) 和 2) 之后 a) 的 cpu 用法应该是一样的。
我分析了 jvm 并注意到一个名为 MC.State.Sender 的线程在场景 1 中处于非活动状态,而在场景 2 中处于活动状态。这是否会耗尽 cpu?这可以通过配置来限制吗?
提前感谢您的帮助。
这是来自 visualvm 的线程转储(我也可以提供 cpu 分析器快照):
scenario1 thread dump
scenario2 thread dump
我在使用 Hazelcast 3.4 和 Mancenter 3.4.1 时注意到了这个问题。
将 Hazelcast 库更新到 3.4.1 后,我无法重复这个问题。
我整整一周都在执行不同的测试,但问题没有再次出现。
解决办法是保持mancenter和Hazelcast lib在同一版本。