【发布时间】:2020-10-14 07:01:50
【问题描述】:
我遇到了一个在 Java8 上运行的 Alfresco 实例的“奇怪”行为。 应用程序有时会使用所有可用的 RAM 并导致 OOM 异常。 我们制作了一个 HeapDump 来查看发生了什么,以及制作转储的过程释放了已用内存的主要部分。 知道那里发生了什么吗?
【问题讨论】:
-
似乎与此线程相关:stackoverflow.com/questions/5403161/…。我们应该强制 GC 还是换个方向?
-
您确定您的应用程序不会使用这样的内存吗?您可能是上传非常大的文件还是根据某些条件创建数千/数百万个重类?
-
应用程序可以使用大量内存,但为什么每次我们转储堆时,都会释放所有内存?据我了解,GC 会释放未引用的内存,这意味着应用程序不再需要内存。跟进我最初的问题,每次我们转储时,内存都会下降,然后又开始上升。这是什么意思?
-
你是手动转储还是使用 java -XX:+HeapDumpOnOutOfMemoryError 自动转储?
标签: java out-of-memory alfresco