- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我目前正在调查我们最近遇到的一些元空间不足问题。罪魁祸首之一似乎是在重新部署 WAR 时加载重复的类。在本地尝试,仅使用我们的一个 WARS,通过完全取消部署后的堆转储,我可以看到应用程序创建的大多数实例仍然存在(即使在垃圾收集之后)。
从堆转储中,我可以看到似乎是 ManagedThreadFactoryImpl 持有引用。
有什么我可以做/添加到应用程序关闭过程中以便它自行清理的吗?
我们所有的 WAR 都是 spring 应用程序,大多数使用调度/异步元素。
我们将 JDK8 与 Wildfly 8.2 一起使用
最佳答案
类加载器似乎没有卸载。试用 Java Mission Control (JMC) 并记录用例。这使您可以转到记录中的特定时间点并调试问题。它提供了在特定时间加载的类的快照,包括堆栈跟踪、线程转储和许多重要的东西。
JMC 包含在 JDK 中。您可以在此处找到更多信息:https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/tooldescr002.html#BABIBBDE
您不必经历获取堆转储的痛苦,然后等待工具对其进行分析。
关于java - 在 Wildfly 上重新部署导致内存不足 : metaspace,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36776421/
我写了一个程序来模拟 MetaSpace OOM。但我发现 MetaSpace Size 几乎总是 Used MetaSpace 的两倍。为什么? 我使用标志 -XX:MaxMetaspaceSize
我想知道如何自己引发OutOfMemoryError: Metaspace异常?是不是可以加载很多类,让它们在内存中长期驻留。 最佳答案 继续向 StringBuilder 添加一些文本,直到出现 O
我正在为生产环境优化 JVM 参数,这包括为应用程序设置最大元空间。我在修复此问题时遇到以下问题: 当环境中有多个应用程序时,我是否真的想设置限制? 是否有内置工具(JDK)可以测量元空间的当前利用率
由于 Java 8 中的元空间,我有一个简短的问题。我知道我可以使用 -XX:MetaspaceSize - 参数设置初始大小。但我想知道是否可以将此值配置为最小大小。 我的目标是防止由于 Metas
java.lang.OutOfMemoryError:Metaspace表示为java类元数据分配的本机内存量已过测试。让我们看看如何在独立应用程序和云应用程序中解决这个问题。 在Java 8及更高版
1. Metaspace区是怎么发生OOM的 在jvm中,用来控制Metaspace区域内存大小的参数一般有两个: -XX:MetaspaceSize:Metaspace初始大小; -X
我一直认为垃圾收集器只清除堆,现在我这么认为。 在 java 8 中,permGen 被删除并被 Metaspace 取代。 据我所知,Metaspace 是垃圾收集器(https://stackov
我目前正在调查我们最近遇到的一些元空间不足问题。罪魁祸首之一似乎是在重新部署 WAR 时加载重复的类。在本地尝试,仅使用我们的一个 WARS,通过完全取消部署后的堆转储,我可以看到应用程序创建的大多数
将我们的 Java 应用程序(在 Tomcat 上运行的服务)JRE 从 Java 7 切换到 Java 8 后,我们开始看到 java.lang.OutOfMemoryError: Metaspac
在 Java 7 之前,JVM 内存中有一个名为 PermGen 的区域,JVM 用来保存它的类。在 Java 8它被移除并被称为 Metaspace 的区域所取代。 PermGen 和 Metasp
在我们的 Wildfly 10 应用服务器上,我们将 groovy 用于 jasperreports 和其他类似系统。 一段时间后,jvm(java 8)收到“内存不足:元空间”错误。 同样的问题发生
我在运行 Java cs 应用程序时遇到 OutOfMemoryError。根据错误信息,似乎是在将XML String传输到Java对象时发生错误。 转账代码如下 public static Obj
我的目标是模拟我可以收到此错误的情况。我试过了How to simulate OutOfMemoryError: Metaspace但它没有帮助。 我在配置中设置:-XX:MaxMetaspaceSi
我知道他们在 Java 8 中用 MetaSpace 替换了 PermGen。但我有几个问题: MetaSpace 是否默认进行 GC 收集? 即使是 PermGen 也是通过添加像 -XX:+CMS
我知道他们在 Java 8 中已将 PermGen 替换为 MetaSpace。但我有几个问题: MetaSpace 是否默认被 GC 收集? 连PermGen都是GC收集的,加了-XX:+CMSCl
目前我正在使用 Gradle 5.2.1 配置 Spring boot 2.1 项目。但是我在构建项目时出现内存不足错误并且无法理解确切原因。 请找到随附的日志 Caused by: org.grad
据我了解,JVM 内的 Native Area 完全禁止垃圾收集器使用。 Metaspace 所在的 Native Area 内部。在前面提到的元空间中,我们有常量池、字段和方法数据等区域。 既然 N
Scala IDE Oxygen 2017 年 9 月运行时出现错误“发生错误。请参阅日志文件 ....metaspace.log。” 版本:Scala 代码运行器版本 2.12.3java版本“9.
Java 8 刚启动后就为 Metaspace 保留 1G。这意味着最小元空间大小为 1G。但我将 MetaspaceSize 设置为 300m,MaxMetaspaceSize 设置为 400m。为
在我们在 Jdk 8 上运行的应用程序中,我们使用 VisualVM 来跟踪加载的类的使用情况和元空间的使用情况。 在我们的应用程序运行的某个时间点,我们看到加载的类的数量不再增加,但是当我们的程序运
我是一名优秀的程序员,十分优秀!