Stable JVM but system memory increase

2019-08-02 15:30发布

问题:

I am running a java application on a Ubuntu 16.04 server. After extensive investigation I have discovered that the JVM heap size is more or less constant. At any rate there are no memory increase.

However, when I look at the server using htop the memory consumption of the server grows at an alarming rate. I am not sure what exactly is causing this but its 100% originating from java process.

I have looked at the hprof files but I cant really tell what Im looking for.

I am running two libs that might be responsible but I am not intimately familiar with them;

  • OrientDB (plocal)
  • Hazelcast

Im not sure if either / both of these would cause a memory increase outside the JVM.

Any advice on the best plan to help identify the problem would be great.

回答1:

Thanks to @the8472, @davmac @qwwdfsad and @andrey-lomakin for your comments. I appreciate the details provided in the question where very thin but I was trying to avoid providing unrelated data that might lead down a rabbit whole.

I systematically tested each suggestion and it turns out that the problem was originating from OrientDB. I cant say 100% which of the following fixed the problem (possibly both). As per @andrey-lomakin suggestion I upgraded from 2.1.19 to 2.2-rc1. In doing this the applications batch inserts started throwing exceptions so I converted them all into single linear queries. Once compete the memory leak has gone.

As a side note in case it affects anybody else while testing for direct IO leak I did discover to my suprise that -Djdk.nio.maxCachedBufferSize=... works withJava(TM) SE Runtime Environment (build 1.8.0_91-b14).