PermGenspace错误解决方法java.lang.OutOfMemoryError:Perm
2016-02-22 14:24
465 查看
PermGen space错误解决方法 java.lang.OutOfMemoryError: PermGen space
简单作个笔记:
堆内存分配:
-Xms JVM初始分配的内存由-Xms指定,默认是物理内存的1/64;
-Xmx JVM最大分配的内存由-Xmx指定,默认是物理内存的1/4;
默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。
因此服务器一般设置-Xms、-Xmx相等以避免在每次GC 后调整堆的大小。
非堆内存分配
-XX:PermSize JVM使用-XX:PermSize设置非堆内存初始值,默认是物理内存的1/64;
-XX:MaxPermSize 由XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4。
注意:
参数中
-Xms的值要小于-Xmx,
-XX:PermSize的值要小于-XX:MaxPermSize;
-Xmx的值和-XX:MaxPermSize的总和应不超过JVM内存的最大限制,比如当前操作系统最大内存限制,或者实际的物理内存
-vmargs -Dosgi.requiredJavaVersion=1.5 -Xms512m -Xmx1024m -XX:PermSize=256M -XX:MaxPermSize=512M
修改catalina.bat
添加
JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms1536m -Xmx1536m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC" JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms512m
-Xmx512m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC" 修改TOMCAT_HOME/bin/catalina.sh 在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行: JAVA_OPTS="-server -Xms800m -Xmx800m -XX:MaxNewSize=256m"
修改TOMCAT_HOME/bin/catalina.sh
在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:
JAVA_OPTS="-server -Xms800m -Xmx800m -XX:MaxNewSize=256m"
三、实例,以下给出1G内存环境下java jvm 的参数设置参考:
JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true "
Caused by: java.lang.OutOfMemoryError: Java heap space
解决方法:设置TOMCAT的内存大小
1.MyEclipse
Window-->Preference-->MyEclipse-->Application Servers-->Tomcat-->Tomcat 6.x-->JDK-->Optional Java VM arguments下填上:
-Xms256m -Xmx512m -XX:PermSize=256m -XX:MaxPermSize=600m
2.Window系统
2.1.编辑tomcat的catalina.bat文件,在第一行的后面增加一句:
set JAVA_OPTS=-server -Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxPermSize=256M
简单作个笔记:
堆内存分配:
-Xms JVM初始分配的内存由-Xms指定,默认是物理内存的1/64;
-Xmx JVM最大分配的内存由-Xmx指定,默认是物理内存的1/4;
默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。
因此服务器一般设置-Xms、-Xmx相等以避免在每次GC 后调整堆的大小。
非堆内存分配
-XX:PermSize JVM使用-XX:PermSize设置非堆内存初始值,默认是物理内存的1/64;
-XX:MaxPermSize 由XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4。
注意:
参数中
-Xms的值要小于-Xmx,
-XX:PermSize的值要小于-XX:MaxPermSize;
-Xmx的值和-XX:MaxPermSize的总和应不超过JVM内存的最大限制,比如当前操作系统最大内存限制,或者实际的物理内存
-vmargs -Dosgi.requiredJavaVersion=1.5 -Xms512m -Xmx1024m -XX:PermSize=256M -XX:MaxPermSize=512M
修改catalina.bat
添加
JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms1536m -Xmx1536m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC" JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms512m
-Xmx512m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC" 修改TOMCAT_HOME/bin/catalina.sh 在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行: JAVA_OPTS="-server -Xms800m -Xmx800m -XX:MaxNewSize=256m"
修改TOMCAT_HOME/bin/catalina.sh
在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:
JAVA_OPTS="-server -Xms800m -Xmx800m -XX:MaxNewSize=256m"
三、实例,以下给出1G内存环境下java jvm 的参数设置参考:
JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true "
Caused by: java.lang.OutOfMemoryError: Java heap space
解决方法:设置TOMCAT的内存大小
1.MyEclipse
Window-->Preference-->MyEclipse-->Application Servers-->Tomcat-->Tomcat 6.x-->JDK-->Optional Java VM arguments下填上:
-Xms256m -Xmx512m -XX:PermSize=256m -XX:MaxPermSize=600m
2.Window系统
2.1.编辑tomcat的catalina.bat文件,在第一行的后面增加一句:
set JAVA_OPTS=-server -Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxPermSize=256M
相关文章推荐
- Java [Leetcode 189]Rotate Array
- 浅析Java中的final关键字
- 深入Java虚拟机(2)——Java的平台无关性
- 解析Java中的File类
- socket 中使用byte数组或者是字符流传输数据
- Spring自定义接口,不定期更新。。。
- java中Double类型数据保留两位(非四舍五入)
- spring配置文件读取properties文件
- Java I/O 之File and FilenameFilter接口
- Java中的堆与栈之克隆篇
- Spring Web Flow 2.0 入门
- JAVA招聘
- Junit单元测试Spring 读取WEB-INF下的配置文件
- Java 延迟时间执行代码
- Struts2中的拦截器与过滤器学习
- maven3常用命令、java项目搭建、web项目搭建详细图解
- 【JAVA】JSP中文乱码
- Java压缩文件生成工具类
- java取读excel的特定单元格的值
- eclipse运行maven项目报错:找不到ContextLoaderListener、IntrospectorCleanupListener