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

时间:2016-10-13 10:51:46

标签: 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 (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异常的节点之外,日志告诉我们什么。这种情况发生在流量非常小的节点和流量非常高的节点上(不同的环境具有相同的行为)。

有人遇到过类似的行为吗?任何前进的想法?

1 个答案:

答案 0 :(得分:3)

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

为了升级Hazelcast,有一些"技巧"要做。

1)在此处下载特定Hazelcast版本的WSO2 GitHub仓库(或简称pom文件):https://github.com/wso2/orbit/tree/master/hazelcast

2)更改POM的此部分中的Hazelcast版本(到您的首选版本):

<properties>
    <version.hazelcast>3.7.2</version.hazelcast>
</properties>

3)构建包。

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

这是一个&#34;解决方案&#34;因为它只能修补与产品已经附带的组件同名的组件。