问题描述
我在我的应用程序中使用 JVM 中的hazelcast,该应用程序在 kubernetes 中运行 2 个副本。两个容器中的 Hazelcast 已形成一个集群,并且同步工作正常。
但是我的应用程序在开始使用 hazelcast 后开始使用多 20% 的线程。在分析线程转储时发现,hazelcast 使用了额外的 20%
Hazelcast 使用这么多线程是否可以,或者如果可以减少,我该怎么做?
解决方法
Hazelcast 将根据可用的处理器数量自行调整其使用的线程数量。
(在 Java 中,参见 Runtime.availableProcessors() )
您的容器分配了多少个?
如果您确定线程不合适,您可以覆盖线程。从 here 中查找系统属性,例如 hazelcast.*.thread.count
。有很多选择,只是减少或增加并不是一项随意的任务,如果您调低数字,则可能会导致性能非常差。