千家信息网

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

发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要介绍Tomcat运行Java Web内存溢出的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!如果JVM里运行的程序, 它的内存堆和持久存储区域的都满了,这个
千家信息网最后更新 2025年11月07日Tomcat运行Java Web内存溢出的示例分析

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

如果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内存溢出的示例分析"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

内存 线程 方法 运行 对象 存储 服务 时候 服务器 类型 示例 分析 一代 也就是 信息 内容 区域 变量 垃圾 实例 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 杭州朵朵互联网科技有限公司 邢台软件开发的公司 中国网络安全检查小组组长 联合国商贸数据库查不到数据 浙江省大学生网络安全专业排名 黄浦区即时网络技术供应 家庭影音服务器 国资网络安全上市公司 俞敏洪互联网科技讲座 网络机顶盒显示服务器连接失败 惠州家政软件开发费用是多少 互联网科技公司2021财报 stem服务器安装不了怎么办 某网站的用户数据库泄露影响 计算机网络技术与应用怎么学 查看远程数据库版本 网络安全概念股迎风口 成都红牛网络技术有限公司 服务器如何租用网络安全 云数据库属于云计算吗 道奇君网络技术 四川企业软件开发大概多少钱 边缘服务器说明什么 用打疫苗做数据库 惠州家政软件开发费用是多少 网络安全抖音配音音乐 数据库技术认识 软件开发延期交付违约金 http代理服务器实现 大城哪有学电脑软件开发的
0