Нужен совет по управлению памятью JVM - PullRequest
0 голосов
/ 08 апреля 2019

У нас есть служба поддержки, открытая у поставщика программного обеспечения (Atlassian ...)

В настоящее время мы обсуждаем, почему мы должны увеличить физическую память и размер кучи JVM, когда текущая ситуация следующая:

  • Сервер / ВМ имеет 6 ГБ физической ОЗУ
  • Он использует не более 3 ГБ из этого, так как остальное используется для буферов ОС и кеша (я должен был объяснить им это: https://www.linuxatemyram.com/)
  • В JVM настроен максимальный размер кучи 2G, после сборки мусора мы используем около 600 МБ памяти кучи

Проблема, с которой мы сталкиваемся, это редкие и случайные ситуации нехватки памяти следующего вида:

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

и т.д.

Конечно, они придерживаются своего документа , в котором говорится, что JVM предоставляет нечестивые объемы памяти в определенных сценариях, но неясно, должны ли, например, все условия быть выполнены. Допустим, у вас есть система с 2000 пользователями, но, может быть, только 50 активных одновременно. Это большой масштаб?

Также в этом документе я не понимаю, почему в системе должно быть в четыре раза больше физической памяти по сравнению с максимальной кучей.

...