Our JVMs consume more memory than expected. We did some profiling and found that there was no leak. The heap memory used reaches 2.9 GB, but in idle mode, up to 800 MB. But the heap has increased to 3.5 GB (sometimes 4 GB) and never goes down. Also after downtime, when the used heap increases from 800 MB, then the fixed heap memory increases from 3.5 GB. Therefore, our server reaches the maximum amount of memory in the near future, and we must restart them in a day.
My questions
- My understanding is that memory is currently allocated to heap memory. When used heap memory decreases, why doesn't lost memory also decrease?
- When used heap memory increases from its level (800 MB), heap memory also increases from its level (from 3.5 GB).
We have the following memory settings on our servers:
-Xmx4096M -Xms1536M -XX:PermSize=128M -XX:MaxPermSize=512M
source share