Tomcat_Java Web_内存溢出总结
2017-01-03 12:01
232 查看
在抛出内存溢出错误的时候,一般都会提示内存泄露的种类,一般也都是按照区域进行划分:
1. 堆(heap)内存泄漏java.lang.OutOfMemoryError: Javaheap space:大家都比较熟悉 ,通过设置-Xms2048m -Xmx4096m可以解决
2. 栈(stack)内存泄漏:当前线程运行期间维护的中间变量等信息过多,例如常见的死循环引起stack over flow
3. 方法区(permanent heap)内存泄漏,即java.lang.OutOfMemoryError: PermGen space:发生的原因和类型装载、类型卸载有直接的关系,通过设置-XX:MaxNewSize=256m -XX:MaxPermSize=256m可以解决。
一般情况下,当服务器内存过小,而提供了大量的访问服务时,可能会缓存过多的数据对象造成堆内存溢出,当web应用不断扩大,加载的lib库达到一定大小(4M)后,就容易报PermGen OOM,也就是方法区溢出。
在Linux服务器中将参数写入环境变量:
export CATALINA_OPTS="-Xms2048m -Xmx4096m"
export JAVA_OPTS="-XX:MaxNewSize=256m -XX:MaxPermSize=256m"
Xmx 最大不要超过服务器物理内存的80%
1. 堆(heap)内存泄漏java.lang.OutOfMemoryError: Javaheap space:大家都比较熟悉 ,通过设置-Xms2048m -Xmx4096m可以解决
2. 栈(stack)内存泄漏:当前线程运行期间维护的中间变量等信息过多,例如常见的死循环引起stack over flow
3. 方法区(permanent heap)内存泄漏,即java.lang.OutOfMemoryError: PermGen space:发生的原因和类型装载、类型卸载有直接的关系,通过设置-XX:MaxNewSize=256m -XX:MaxPermSize=256m可以解决。
一般情况下,当服务器内存过小,而提供了大量的访问服务时,可能会缓存过多的数据对象造成堆内存溢出,当web应用不断扩大,加载的lib库达到一定大小(4M)后,就容易报PermGen OOM,也就是方法区溢出。
在Linux服务器中将参数写入环境变量:
export CATALINA_OPTS="-Xms2048m -Xmx4096m"
export JAVA_OPTS="-XX:MaxNewSize=256m -XX:MaxPermSize=256m"
Xmx 最大不要超过服务器物理内存的80%
相关文章推荐
- JavaWeb开发知识总结(tomcat)
- 错误总结之Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 Web modul
- 关于java-web项目发布时,tomcat意外退出的总结
- JavaWeb开发知识总结(tomcat)
- Java Web 回顾总结(二) - Tomcat 安装,启动
- JavaWeb开发Tomcat-->总结(1)
- Apache Ant学习总结(二):使用Ant自动编译JavaWeb项目并打成war包发布到Tomcat中
- Java Web 回顾总结(二) - Tomcat 实际应用
- JavaWeb开发入门学习Tomcat总结(二)
- Java Web 回顾总结(二) - Tomcat 配置
- JavaWeb学习总结(一)JavaWeb入门与Tomcat
- JavaWeb开发Tomcat-->总结(1)
- JavaWeb开发Tomcat-->总结(1)
- java web开发总结(三):linux下超越apache + tomcat的 nginx + tomcat负载均衡配置
- JBoss、Tomcat进行java web开发时8080端口被占用的问题!
- java(Web)中相对路径,绝对路径问题总结
- java(Web)中相对路径,绝对路径问题总结
- java(Web)中相对路径,绝对路径问题总结
- java(Web)中相对路径,绝对路径问题总结
- web发部了,弄了半天,虽然挺简单的,总结一下,jsp和tomcat