稳定的JVM但系统内存增加

时间:2016-05-06 16:15:46

标签: java jvm orientdb hazelcast

我在Ubuntu 16.04服务器上运行java应用程序。经过广泛调查后,我发现JVM堆大小或多或少是不变的。无论如何,没有内存增加。

但是,当我使用htop查看服务器时,服务器的内存消耗会以惊人的速度增长。我不确定究竟是什么造成了这种情况,但它的100%来自于java进程。

我查看了hprof文件,但我真的不知道我在寻找什么。

我正在运行两个可能负责的库,但我并不熟悉它们;

  • OrientDB(plocal)
  • Hazelcast

我不确定这些/两者是否会导致JVM外部的内存增加。

有关帮助确定问题的最佳计划的任何建议都会很棒。

1 个答案:

答案 0 :(得分:1)

感谢@ the8472,@ davmac @qwwdfsad和@ andrey-lomakin的评论。我很欣赏问题中提供的细节,但是我试图避免提供可能导致兔子整体无关的无关数据。

我系统地测试了每个建议,结果发现问题源于 OrientDB 。我不能说100%以下哪个解决了问题(可能两者)。根据@ andrey-lomakin建议,我从2.1.19升级到2.2-rc1。在执行此操作时,应用程序批量插入开始抛出异常,因此我将它们全部转换为单个线性查询。一旦竞争,内存泄漏就消失了。

作为旁注,如果它在测试direct IO leak时影响到其他任何人,我确实发现-Djdk.nio.maxCachedBufferSize=...Java(TM) SE Runtime Environment (build 1.8.0_91-b14)一起工作时我感到惊讶。