Hazelcast 使用大量 JVM 线程

问题描述

我在我的应用程序中使用 JVM 中的hazelcast,该应用程序在 kubernetes 中运行 2 个副本。两个容器中的 Hazelcast 已形成一个集群,并且同步工作正常。

但是我的应用程序在开始使用 hazelcast 后开始使用多 20% 的线程。在分析线程转储时发现,hazelcast 使用了额外的 20%

enter image description here

Hazelcast 使用这么多线程是否可以,或者如果可以减少,我该怎么做?

解决方法

Hazelcast 将根据可用的处理器数量自行调整其使用的线程数量。

(在 Java 中,参见 Runtime.availableProcessors()

您的容器分配了多少个?

如果您确定线程不合适,您可以覆盖线程。从 here 中查找系统属性,例如 hazelcast.*.thread.count。有很多选择,只是减少或增加并不是一项随意的任务,如果您调低数字,则可能会导致性能非常差。