网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

Tomcat运行JavaWeb内存溢出的示例分析

这篇文章主要介绍Tomcat运行Java Web内存溢出的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

创新互联公司长期为上1000+客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为普定企业提供专业的网站制作、做网站,普定网站改版等技术服务。拥有十载丰富建站经验和众多成功案例,为您定制开发。

如果JVM里运行的程序, 它的内存堆和持久存储区域的都满了,这个时候程序还想创建对象实例的话,垃圾收集器就会启动,试图释放足够的内存来创建这个对象。这个时候如果垃圾收集器 没有能力释放出足够的内存,它就会抛出OutOfMemoryError内存溢出错误。

SUN JVM的内存管理方式:

SUN的JVM是类似人类家族,也就是在一个地方创建对象,在它长期占据空间之前给它多次死亡的机会,SUN JVM会划分为:

1. 年轻的一代(Young generation),包括EDEN和2个幸存者空间(出发地和目的地the From space and the To space)

2. 老一代(Old generation)

3. ***的一代(Permanent generation)

Java虚拟机的运行时数据区一般分类如下(不一定是物理划分):

1. 堆:主要存放对象实例,线程共享

2. 栈:主要存储特定线程的方法调用状态,线程独占

3. 本地方法栈:存储本地方法的调用状态,线程独占

4. PC寄存器:学过操作系统课程的都知道,线程独占

5. 方法区:主要存储了类型信息,线程共享

因此,在抛出内存溢出错误的时候,一般都会提示内存泄露的种类,一般也都是按照区域进行划分:

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%

以上是“Tomcat运行Java Web内存溢出的示例分析”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!


本文标题:Tomcat运行JavaWeb内存溢出的示例分析
分享链接:http://bjjierui.cn/article/gssscp.html

其他资讯