Java 8 内存不足:使用Java8的元空间
我的产品有256MB的内存。我已将Java6升级到Java8。 然后,我开始面临与Java8有关的内存问题。 使用Java8时,内存消耗会随着时间的推移而增加 使用相同的代码,java 6的内存消耗是稳定的 我对metaspace、java8进行了大量探索,并发现了以下metaspace参数 我尝试了以下组合,但出现了内存不足错误 1.MaxMetaspaceSize 50M MaxMetaspaceFreeRatio 60米 MinMetaspaceFreeRatio 50米 2.MaxMetaspaceSize 30M 3.MaxMetaspaceSize 40M 4.MaxMetaspaceSize 50M 5.MaxMetaspaceSize 80M 但在2到3小时后,outofmemory元空间错误出现 有人能解释一下什么是元空间选项MaxMetaspaceSize、MaxMetaspaceFreeRatio、MinMetaspaceFreeRatio吗? 如何确定合适的尺寸? 这些值的正确组合是什么,以避免生产中出现outofmemory实例并减少内存消耗?问题已得到解决。 发现JAXB存在已知问题。Java 8 内存不足:使用Java8的元空间,java-8,jetty-8,metaspace,java-memory-leaks,Java 8,Jetty 8,Metaspace,Java Memory Leaks,我的产品有256MB的内存。我已将Java6升级到Java8。 然后,我开始面临与Java8有关的内存问题。 使用Java8时,内存消耗会随着时间的推移而增加 使用相同的代码,java 6的内存消耗是稳定的 我对metaspace、java8进行了大量探索,并发现了以下metaspace参数 我尝试了以下组合,但出现了内存不足错误 1.MaxMetaspaceSize 50M MaxMetaspaceFreeRatio 60米 MinMetaspaceFreeRatio 50米 2.MaxMet
我不明白,为什么开发人员总是拿这些选项胡闹。默认值是无限元空间。因此,如果您不知道哪些限制是最好的,请不要指定任何限制。如果我们不指定限制,它可能会导致巨大的本机内存分配。是的,如果您指定限制,它可能会导致
OutOfMemoryError
。这是你的选择……如果我不设置任何metaspace属性,metaspace会不断增加,即使GC没有从metaspace清理/卸载类。为什么会这样?当GC运行时,我应该做些什么来清理元空间?你没有。如果一个软件有内存泄漏,没有JVM选项可以修复。你必须修复软件。