Tomcat运行JavaWeb内存溢出总结.docx

Tomcat运行JavaWeb内存溢出总结.docx

ID:50530972

大小:32.83 KB

页数:2页

时间:2020-03-10

Tomcat运行JavaWeb内存溢出总结.docx_第1页
Tomcat运行JavaWeb内存溢出总结.docx_第2页
资源描述:

《Tomcat运行JavaWeb内存溢出总结.docx》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、如果JVM里运行的程序,它的内存堆和持久存储区域的都满了,这个时候程序还想创建对象实例的话,垃圾收集器就会启动,试图释放足够的内存来创建这个对象。这个时候如果垃圾收集器没有能力释放出足够的内存,它就会抛出OutOfMemoryError内存溢出错误。  SUNJVM的内存管理方式:  SUN的JVM是类似人类家族,也就是在一个地方创建对象,在它长期占据空间之前给它多次死亡的机会,SUNJVM会划分为:  1.年轻的一代(Younggeneration),包括EDEN和2个幸存者空间(出发地和目的

2、地theFromspaceandtheTospace)  2.老一代(Oldgeneration)  3.永久的一代(Permanentgeneration)  Java虚拟机的运行时数据区一般分类如下(不一定是物理划分):  1.堆:主要存放对象实例,线程共享  2.栈:主要存储特定线程的方法调用状态,线程独占  3.本地方法栈:存储本地方法的调用状态,线程独占  4.PC寄存器:学过操作系统课程的都知道,线程独占  5.方法区:主要存储了类型信息,线程共享  因此,在抛出内存溢出错误的时候,

3、一般都会提示内存泄露的种类,一般也都是按照区域进行划分:  1.堆(heap)内存泄漏java.lang.OutOfMemoryError:Javaheapspace:大家都比较熟悉,通过设置-Xms2048m-Xmx4096m可以解决  2.栈(stack)内存泄漏:当前线程运行期间维护的中间变量等信息过多,例如常见的死循环引起stackoverflow  3.方法区(permanentheap)内存泄漏,即java.lang.OutOfMemoryError:PermGenspace:发生的

4、原因和类型装载、类型卸载有直接的关系,通过设置-XX:MaxNewSize=256m-XX:MaxPermSize=256m可以解决。  一般情况下,当服务器内存过小,而提供了大量的访问服务时,可能会缓存过多的数据对象造成堆内存溢出,当web应用不断扩大,加载的lib库达到一定大小(4M)后,就容易报PermGenOOM,也就是方法区溢出。  在Linux服务器中将参数写入环境变量:  exportCATALINA_OPTS="-Xms2048m-Xmx4096m"exportJAVA_OPTS

5、="-XX:MaxNewSize=256m-XX:MaxPermSize=256m"Xmx最大不要超过服务器物理内存的80%

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。