tomcat内存溢出处理方法

tomcat内存溢出问题:

    在JVM中如果98%的时间是用于GC且可用的 Heap size 不足2%的时候将抛出此异常信息。

    JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置,

    JVM在启动的时候会自动设置Heap size的值,

    其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。

    可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。

 

    在tomcat服务器遇到这样的问题: ---java.lang.OutOfMemoryError: PermGen space

    这个异常和JVM默认划分的内存上限是128M有关,如果你的业务足够繁忙,128M是远远不够的,

    所以可以给JVM分配上1G甚至更多(视服务器的配置而定),这样就可以避免内存溢出。
 

解决方法:

    1)linux下

       编辑tomcat的catalina.sh文件,在第一行的后面增加一句:

       JAVA_OPTS='-server -Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxPermSize=256M'

       注意:单引号不能少

            -server表示以server模式运行(运行效率比默认的client高很多)

    -Xms256m是最小内存

    -Xmx512m是最大内存

    其中的256与512可根据你自己的内存做相应调整

    PermSize/MaxPermSize最小/最大堆大小

    *一般报内存不足时,都是说这个太小,堆空间剩余小于5%就会警告,可已适度把这个稍微设大一点,视自己机器内存而定

 

       添加代码样例:

       #!/bin/sh

       JAVA_OPTS='-server -Xms1024m -Xmx1024m XX:PermSize=128M -XX:MaxPermSize=256M'

       # -----------------------------

    2)windows下

       编辑tomcat的catalina.bat文件,在第一行的后面增加一句:

       set JAVA_OPTS=-server -Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxPermSize=256M

       注意:没有单引号

 

注:Java Options中每一行的最后不能有空格。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值