PermSize设置过小对性能的影响(OutOfMemoryError:PermGenspac)

【现象】:应用更新新版本后,其中一台机出现了较多的重启现象。

创新互联建站坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站制作、成都网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的抚远网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

【原因分析】:

分析应用日志,发现有OutOfMemoryError:PermGen space,此报错说明 PermSize 设置过小,没有足够的内存使用。

【解决方案】:

修改JVM配置,配置上

-XX:PermSize=128m

-XX:MaxPermSize=128m

说明:JVM的Perm区主要用于存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space,这个区域成为年老代,GC在主程序运行期间不会对年老区进行清理,默认是64M大小的,当程序需要加载的对象比较多时,超过64M就会报这部分内存溢出了,需要加大内存分配,一般128m足够。

还有一种直接报java.lang.OutOfMemoryError的,这种情况一般是jvm最大和最小内存分配配置有问题,最小内存分配过小,GC频率高,降低jvm性能,但最小内存也不能无限增大,最小内存增大,GC频率低了,但其执行时间会加长,GC执行期间,java程序是不处理其他请求的,因此将最小内存xms和最大内存xmx设置一样大,xmn值设置约为xmx的1/3.


分享标题:PermSize设置过小对性能的影响(OutOfMemoryError:PermGenspac)
分享URL:http://myzitong.com/article/ggddgs.html