内存不足:带有java 8的Metaspace

时间:2016-09-02 06:12:05

标签: java-8 jetty-8 metaspace java-memory-leaks

我的产品有256 MB的RAM。我已将java 6升级到java 8。 然后我开始面对java 8的内存相关问题。 使用Java 8时,内存消耗正在增加 使用相同的代码,java 6的内存消耗是稳定的 我已经对metaspace,java8以及在metaspace参数下面找到了很多东西。

我尝试过以下组合并出现内存错误

1.MaxMetaspaceSize 50M   MaxMetaspaceFreeRatio 60M   MinMetaspaceFreeRatio 50M

2.MaxMetaspaceSize 30M

3.MaxMetaspaceSize 40M

4.MaxMetaspaceSize 50M

5.MaxMetaspaceSize 80M

但是在2到3个小时之后,出现了内存的元空间错误。

有人可以解释一下元空间选项MaxMetaspaceSize,MaxMetaspaceFreeRatio,MinMetaspaceFreeRatio是什么?

如何确定合适的尺寸? 什么是这些值的正确组合,以避免生产中的内存实例并减少内存消耗?

1 个答案:

答案 0 :(得分:1)

问题已解决。 发现JAXB存在已知问题。  

  • 使用stringbuffer而不是string
  •  
  • 删除了不必要的JAXBContext实例。
  • 请参阅此链接

  • Are there any memory utlization issue with JAXB?