zoukankan      html  css  js  c++  java
  • Tomcat的内存溢出(PermGen space)

    这几天在做一项工作,就是把一些网站放到一台服务器上。周五已经放了三个,昨天又加了两个。结果昨天晚上就出了问题,是java.lang.OutofMemoryError: PermGen space.

    上网查了查,都说是因为“永久保存区域溢出”。PermGen space全称是Permanent Generation Space。这一部分用于存放class和meta信息,class在被load的时候被加入到这一区域。PermGen space默认大小只有4M, 而Garbage Collection不会在主程序运行期间对PermGen space进行清理,所以如果web应用会load很多class时,就会出现这个问题。一般使用了Spring和Hibernate框架的web应用,引入了大量第三方的jar包,更容易出现这个问题。

    解决方法:

    在$CATALINA_HOME/bin/catalina.sh中,添加一句

    1 JAVA_OPTS="$JAVA_OPTS -Xms512m -Xmx1024m -XX:PermSize=256M -XX:MaxPermSize=512m"

    这句代码中间的-Xms512m -Xmx1024m不是解决这个问题的,而是解决另一种内存溢出的。只是它们一般结合使用,所以就都加上了。

    加上这句代码,再重启服务,就不会像没加时那样每隔十来分钟就溢出一次了。

  • 相关阅读:
    redis 哨兵集群
    图像噪声概述
    基于FPGA的图像去噪
    参考文献写法
    zynq 之u-boot
    图像去噪算法
    制作根文件系统(接上次嵌入式交叉编译环境)
    ubuntu OPENCV移植
    zedboard OPENCV移植
    zedboard 构建嵌入式linux
  • 原文地址:https://www.cnblogs.com/yuepeng/p/1825605.html
Copyright © 2011-2022 走看看