博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
tomcat中同时启动两个项目出现内存不足的错误提示解决办法
阅读量:7071 次
发布时间:2019-06-28

本文共 1345 字,大约阅读时间需要 4 分钟。

hot3.png

错误提示:OutOfMemoryError: PermGen space

永久保存区域溢出
PermGen space的全称是Permanent Generation space,是指内存的永久保存区域。这一部分用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域,它和和存放Instance的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS的话,就很可能出现PermGen space错误。这种错误常见在web服务器对JSP进行pre compile的时候。但目前的hibernate和spring项目中也很容易出现这样的问题。
一般是加大-XX:PermSize  -XX:MaxPermSize 来解决问题。
  -XX:PermSize永久保存区域初始大小
  -XX:PermSize永久保存区域初始最大值
修改tomcat内存大小的配置:
1.对于解压缩版本的tomcat
在tomcat目录下bin\catalina.bat文件中
remGuessCATALINA_HOMEifnotdefined setCURRENT_DIR=%cd%后面添加:
setJAVA_OPTS=-Xms256m-Xmx512m -XX:PermSize=128M-XX:MaxNewSize=256m -XX:MaxPermSize=256m-Djava.awt.headless=true
如果用startup.bat启动tomcat,设置生效.
但是如果不是执行startup.bat启动tomcat而是利用windows的系统服务启动tomcat服务,上面的设置就不生效了,需要修改注册表中的信息
2.对于安装版的tomcat
需要修改注册表中的信息
修改注册表HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\Tomcat6\Parameters\JavaOptions 
原值为 
-Dcatalina.home=E:\Tomcat 6.0 
-Dcatalina.base=E:\Tomcat 6.0 
-Djava.endorsed.dirs=E:\Tomcat 6.0\common\endorsed 
-Djava.io.tmpdir=E:\Tomcat 6.0\temp 
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 
-Djava.util.logging.config.file=E:\Tomcat 6.0\conf\logging.properties 
加入-XX:PermSize=128M
   -XX:MaxPermSize=512M  (该值若大于实际内存也会提示错误,且实际可分配的内存要小于总内存,因为硬件也占有部分内存)
重起tomcat服务,设置生效

转载于:https://my.oschina.net/u/3691499/blog/1554770

你可能感兴趣的文章
Confluence 6 文档主题合并问答
查看>>
史上最透彻的 RabbitMQ 可靠消息传输实战
查看>>
JDK源码分析(10)之 Hashtable 相关
查看>>
重做项目的初衷及计划
查看>>
@PathVariable 带"."号传参的小坑
查看>>
写一个方法,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。...
查看>>
Python打牢基础,从12个语法开始!
查看>>
为什么不支持MD
查看>>
如何成为月薪3万左右的UI设计师,应该学习什么能力?
查看>>
mysql 修改datadir
查看>>
两台web服务器做文件共享,负载均衡
查看>>
eclipse maven 导出项目依赖的jar包
查看>>
线程池模型
查看>>
使用spring boot构建微服务
查看>>
域用户管理
查看>>
SCVMM2012SP1之环境准备
查看>>
failed to install tomcat6 service check your settings and permissions的解决办法
查看>>
bash启动脚本
查看>>
我的友情链接
查看>>
树莓派3 之 安装Mysql服务
查看>>