如何增加Jboss中的Heap和Perm内存?

时间:2017-11-30 17:14:24

标签: java memory memory-management jboss

真正的问题是我不知道如何根据我服务器上可用的RAM内存增加Perm大小的内存。  我在配置文件中,我可以看到我保留了堆内存8192Mb和MaxPermSize为1024m。

JAVA_OPTS="-Xms1024m -Xmx8192m -XX:MaxPermSize=1024m -Djava.net.preferIPv4Stack=true"
JAVA_OPTS="$JAVA_OPTS -Djboss.modules.system.pkgs=$JBOSS_MODULES_SYSTEM_PKGS -Djava.awt.headless=true"

我服务器上可用的总内存为9Gb。据我所知,Perm内存空间不属于堆内存。我使用8Gb作为堆内存,1Gb作为彼尔姆。 所以,如果我想增加Perm内存,我需要减少堆内存,例如7GB,然后将Perm内存增加到2GB,对吗? 或者我可以将8Gb留给堆内存,并将PermSize增加到2Gb。

我这样做是因为我从服务器收到此错误。但我不确定是什么问题,因为你可以看到伊甸园的空间已满,但PermGen已经满了。 但问题可能出在配置中,如果我的服务器上有9GB ram内存可用,并且我为堆内存保留了8Gb,而为perm内存保留了1Gb,可能是为一个空间保留的内存未完全占用。

Heap
 PSYoungGen      total 1937408K, used 1119744K [0x0000000755500000, 0x00000007ff680000, 0x0000000800000000)
  eden space 1119744K, 100% used [0x0000000755500000,0x0000000799a80000,0x0000000799a80000)
  from space 817664K, 0% used [0x0000000799a80000,0x0000000799a80000,0x00000007cb900000)
  to   space 811008K, 0% used [0x00000007cde80000,0x00000007cde80000,0x00000007ff680000)
 ParOldGen       total 5592064K, used 5591839K [0x0000000600000000, 0x0000000755500000, 0x0000000755500000)
  object space 5592064K, 99% used [0x0000000600000000,0x00000007554c7ce0,0x0000000755500000)
 PSPermGen       total 261120K, used 260769K [0x00000005c0000000, 0x00000005cff00000, 0x0000000600000000)
  object space 261120K, 99% used [0x00000005c0000000,0x00000005cfea86c8,0x00000005cff00000)

1 个答案:

答案 0 :(得分:1)

你有MaxPermSize = 1024m,但PSPermGen只分配了261m,所以你不要全部使用。

从性能的角度来看,设置Xms与Xmx的区别通常不太好。

您将所有物理内存用于Heap和PermGen。你应该为操作系统保留一些内存。您的服务器可能开始翻页。

分析gc-log或使用jstat,jconsole或jvisualvm监视内存使用情况可能会有所帮助。