Linux配置内存依旧报内存溢出--解决方案

在linux环境下,tomcat7,部署war包.启动项目时报java.lang.OutOfMemoryError: PermGen space异常

PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,
这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中,
它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对
PermGen space进行清理。

解决方法: 设置MaxPermSize大小
JAVA_OPTS="-Xms256m -Xmx512m -Xss1024K -XX:PermSize=128m -XX:MaxPermSize=256m"
通常我们都是直接把设置语句拷贝这个文件 tomcat-》bin-》catalina.sh

修改后启动过程没有报异常,但是无法访问。参看后台,依旧报内存溢出,但不是java.lang.OutOfMemoryError: PermGen space,而是
java.lang.OutOfMemoryError: Java heap space
这是因没有成功配置jvm的内存。

解决方案:改变设置MaxPermSize语句的位置

要添加在tomcat 的bin 下catalina.sh 里,位置cygwin=false前

# OS specific support. $var _must_ be set to either true or false.
JAVA_OPTS="-Xms256m -Xmx512m -Xss1024K -XX:PermSize=128m -XX:MaxPermSize=256m"
cygwin=false

时间: 2024-08-08 13:54:39

Linux配置内存依旧报内存溢出--解决方案的相关文章

linux系统unzip文件报错的解决方案

data.zip文件有4G多,解压的时候出问题了. Archive:  data.zip End-of-central-directorysignature not found.  Either thisfile is not a zipfile, or itconstitutes one disk of a multi-partarchive.  In the latter case the centraldirectory and zipfile comment will be found

spring boot启动报内存溢出的问题

问题: springBoot项目,已经两次了,启动报内存溢出,内存泄露 分析: 内存泄露是因为垃圾回收器想要回收程序不用的对象,但是该对象还有引用存在 解决: 1.第一次是mybatis文件和Java的dao层里的接口类,参数不同,导致编译时停在这个mapper文件 可以查看控制台看停在那个mapper来解决该文件的参数问题 2.第二次是启动的时候有一个controller类的属性靠配置文件注入值,后来不用了也没注释掉, 但是配置文件修改了,没有这个值的配置,启动报内存泄露 总结: 可以看出,都

应用jacob组件造成的内存溢出解决方案(java.lang.OutOfMemoryError: Java heap space)

http://www.educity.cn/wenda/351088.html 使用jacob组件造成的内存溢出解决方案(java.lang.OutOfMemoryError: Java heap space) 都说内存泄漏是C++的通病,内存溢出是Java的硬伤,这个头疼的问题算是让我给碰到了.我在做的这个功能涉及到修改word文档,因为微软没有公开word源代码,所以直接用java流来读取word的后果是读出来的会是乱码,经过查资料得知可以使用poi和jacob来操作word,jacob使用

Linux Tomcat安装,Linux配置Tomcat,Linux Tomcat修改内存,Linux tomcat修改端口

Linux Tomcat安装,Linux配置Tomcat,Linux Tomcat修改内存,Linux tomcat修改端口 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ?Copyright 蕃薯耀 2017年3月1日 http://www.cnblogs.com/fanshuyao/ JDK安

Tomcat报内存溢出

1.错误描述 严重:Exception occurred during processing request:null          java.lang.reflect.InvocationTargetException. Caused by:java.lang.OutOfMemoryError:Java heap space. 2.错误原因      Tomcat在处理大数据时出现内存溢出 3.解决办法     编辑tomcat的catalina.bat文件,在第一行的后面增加一句: se

内存溢出解决方案

内存溢出解决方案 1.内存溢出(OOM)是指应用系统中存在无法回收的内存或使用的内存过多,最终使得程序运行要用到的内存大于虚拟机能提供的最大内存.为了解决Java中内存溢出问题, 我们首先必须了解Java是如何管理内存的.Java的内存管理就 是对象的分配和释放问题.在Java中,内存的分配是由程序完成的,而内存的释放是由垃圾收集器(GarbageCollection,GC)完成的, 程 序员不需要通过调用GC函数来释放内存,因为不同的JVM实现者可能使用不同的算法管理GC,有的是内存使用到达一

JVM内存监视手段和内存溢出解决方案

引言 本文仅关注一些常见的虚拟机内存监视手段,以及JVM运行时数据区各个部分内存溢出的发生和对应的解决方案,总体来说属于概括性总结,涉及相对不是很深入,目的是让自己和其它初学者有一个框架性.概念性的了解,当遇到问题时有迹可循.不至于不知所措. 一.虚拟机内存监视手段 虚拟机常出现的问题包括:内存泄露.内存溢出.频繁GC导致性能下降等,导致这些问题的原因可以通过下面虚拟机内存监视手段来进行分析,具体实施时可能需要灵活选择,同时借助两种甚至更多的手段来共同分析. 比如GC日志可以分析出哪些GC较为频

PHP内存溢出解决方案

一.内存溢出解决方案 在做数据统计分析时,经常会遇到大数组,可能会发生内存溢出,这里分享一下我的解决方案.还是用例子来说明这个问题,如下: 假定日志中存放的记录数为500000条,那么解决方案如下: ini_set(‘memory_limit’,’64M’); //重置php可以使用的内存大小为64M,一般在远程主机上是不能修改php.ini文件的,只能通过程序设置.注:在safe_mode(安全模式)下,ini_set失效 set_time_limit(600);//设置超时限制为6分钟 $f

Linux/Unix用valgrind检测内存泄漏

c\c++编程中,内存管理是比较头疼的问题,一不小心就会造成内存泄漏,除了养成良好的编程习惯外(使用智能指针等),使用工具也能帮助检测内存泄漏,valgrind是Unix\Linux下一款不错的工具.(mac下暂时有bug) Valgrind 安装 到www.valgrind.org下载最新版valgrind-3.2.3.tar.bz2 解压安装包:tar –jxvf valgrind-3.2.3.tar.bz2 解压后生成目录valgrind-3.2.3 cd valgrind-3.2.3 运