如何在WSO2 API Manager 1.10中分析和修复hazelcast的堆转储问题?

如何在WSO2 API Manager 1.10中分析和修复hazelcast的堆转储问题?,wso2,hazelcast,wso2-am,Wso2,Hazelcast,Wso2 Am,WSO2 API Manager 1.10.0的设置有问题。我们使用集群设置,有3个网关工作节点和一个管理节点;单独的存储、发布和密钥管理器节点(我们最近从v1.8.0更新到1.10.0) 升级后,每~2周,我们的所有工作节点(有时还有其他节点)都会堆起并崩溃(几乎同时发生) 分析堆转储将显示: 28,509 instances of "com.hazelcast.nio.tcp.WriteHandler", loaded by "hazelcast" occupy 945,814,400 (4

WSO2 API Manager 1.10.0的设置有问题。我们使用集群设置,有3个网关工作节点和一个管理节点;单独的存储、发布和密钥管理器节点(我们最近从v1.8.0更新到1.10.0)

升级后,每~2周,我们的所有工作节点(有时还有其他节点)都会堆起并崩溃(几乎同时发生)

分析堆转储将显示:

28,509 instances of "com.hazelcast.nio.tcp.WriteHandler", loaded by "hazelcast" occupy 945,814,400 (44.42%) bytes

28,509 instances of "com.hazelcast.nio.tcp.ReadHandler", loaded by "hazelcast" occupy 940,796,960 (44.18%) bytes
带螺纹:

com.hazelcast.nio.tcp.iobalancer.IOBalancerThread @ 0x7877eb628 hz.wso2.pubstore.domain.instance.IOBalancerThread Thread
我们还没能找到补救办法。日志只告诉我们节点发生OOM异常。这种情况发生在流量非常小的节点和流量非常高的节点上(不同的环境具有相同的行为)


有人遇到过类似的行为吗?有什么想法吗?

这确实是Hazelcast的内存泄漏问题。升级到更高版本后,此问题停止

为了升级Hazelcast,需要做一些“诡计”

1) 在此处下载特定Hazelcast版本的WSO2 GitHub repo(或pom文件):

2) 将POM本节中的Hazelcast版本更改为您的首选版本:


3.7.2
3) 构建包

4) 将构建包作为修补程序部署到服务器


这是一个“解决办法”,因为只能修补与产品已随附的组件同名的组件。

基础的Hazelcast版本是什么?Hazelcast版本3.5.2最近修复了一个内存泄漏()。您应该将Hazelcast版本更新到至少3.6.2,更好更新。我希望这能有所帮助。我们在WSO2 API-M上也有类似的问题。但我如何才能将Hazelcast升级到3.6.2?谢谢分享。但是,您能否提供有关如何“将构建包部署为修补程序”的更多详细信息?在/repository/components/patches中创建一个新的修补程序目录(对于patch0100,使用增量编号,然后将jar文件放入其中)。当您重新启动服务器时,您将看到它正在修补您放入修补程序文件夹中的文件。另见:
<properties>
    <version.hazelcast>3.7.2</version.hazelcast>
</properties>