Hazelcast 正在使用大量 JVM 线程

Posted

技术标签:

【中文标题】Hazelcast 正在使用大量 JVM 线程【英文标题】:Hazelcast is using high number of JVM threads 【发布时间】:2021-06-16 21:10:34 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

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

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

你的容器分配了多少?

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

【讨论】:

以上是关于Hazelcast 正在使用大量 JVM 线程的主要内容,如果未能解决你的问题,请参考以下文章

Hazelcast - OperationTimeoutException

使用分布式 JVM 缓存同步计算和结果

JVM反调调用优化,导致发生大量异常时log4j2线程阻塞

JVM的内存结构

如何配对在同一图像的多个 docker 容器中运行的嵌入式 Hazelcast

使用 SmartFoxServer 实现 Hazelcast