javaweb容器调整整堆栈内存的方法

了解过jvm的人都知道,java程序是在jvm中运行的,jvm中堆,栈,有方法区等模块,因此一个几百M的程序启动在jvm中肯定是出现如下异常信息:

  1. tomcat:java.lang.OutOfMemoryError: PermGen space
  2. tomcat:java.lang.OutOfMemoryError: Java heap space
  3. weblogic:Root cause of ServletException java.lang.OutOfMemoryError
  4. resin:java.lang.OutOfMemoryError
  5. java:java.lang.OutOfMemoryError



接下来根据笔者的经验,在我的开发中遇到这类问题的解决方案。


一、使用eclipse解决内存异常的问题

        用eclipse开发的时候,通常在eclipse中添加tomcat容器,此时eclipse会和tomcat有一个软关联,通过eclipse来可以设置tomcat的端口号,虚拟路径,存储位置,设置容器的堆栈内存。


在红框里面添加如下参数配置:

    -Xms1024m
    -Xmx1024m
    -XX:PermSize=128M
    -XX:MaxPermSize=256m
    -XX:MaxNewSize=256m


参数说明:xms 最小堆  xmx最大堆  permsize持久层 


二、使用tomcat容器解决内存异常的问题

        在实际部署过程中,可能只能在tomcat中部署项目,通过把项目打包成war的方式,直接放在tomcat中的webapp目录下,容器启动后并会自动解压。此时遇到内衬异常的时候,解决方案如下:

在TOMCAT_HOME/bin/catalina.sh(以linux中的tomcat为例)中找到:

rem ----- Execute The Requested Command ---------------------------------------

echo Using CATALINA_BASE:   "%CATALINA_BASE%"
echo Using CATALINA_HOME:   "%CATALINA_HOME%"
echo Using CATALINA_TMPDIR: "%CATALINA_TMPDIR%"


在echo Using CATALINA_BASE: "%CATALINA_BASE%"上面添加:

set JAVA_OPTS=%JAVA_OPTS% -Xms1024m -Xmx1024m -XX:PermSize=64M -XX:MaxPermSize=128m  -XX:MaxNewSize=256m


三、使用jetty:run容器解决内存异常的问题

        使用maven作为编译工具,内置jetty插件来开发项目效率会提高很多,使用jetty修改最大堆栈内存方式如下:

在jre中加入:

-server -Xms256m -Xmx512m -XX:PermSize=256m -XX:MaxPermSize=256m

参考:http://outofmemory.cn/c/java-outOfMemoryError

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值