需要有关JVM内存管理的建议

时间:2019-04-08 17:41:27

标签: java memory-management out-of-memory

我们正在与软件供应商(Atlassian ...)一起提供支持案例

当前,我们正在讨论为什么在当前情况如下时应该增加JVM的物理内存和堆大小:

  • 服务器/ VM具有6GB的物理RAM
  • 它最多使用3GB,因为其余的用于OS缓冲区和缓存(我必须向他们解释:https://www.linuxatemyram.com/
  • JVM的最大堆大小已配置为2G,垃圾回收后,我们的堆内存使用量约为600 MB

我们遇到的问题是以下几种罕见的随机内存不足情况:

mmap failed for CEN and END part of zip file

...

2019-04-04 14:41:31,937 http-nio-8080-exec-11 ERROR [o.a.c.c.C.[.[localhost].[/].[action]] Servlet.service() for servlet [action] in context with path [] threw exception [java.lang.OutOfMemoryError] with root cause
java.lang.OutOfMemoryError
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:219)
at java.util.zip.ZipFile.<init>(ZipFile.java:149)
at java.util.jar.JarFile.<init>(JarFile.java:166)
at java.util.jar.JarFile.<init>(JarFile.java:103)
... 11 filtered

当然,他们坚持使用their doc,这表示在某些情况下要给JVM大量的内存,但是例如是否必须满足所有条件尚不清楚。假设您的系统有2000个用户,但一次只能激活50个用户。规模大吗?

同样在该文档中,我不明白为什么系统的物理内存量应该是最大堆的四倍。

0 个答案:

没有答案