javaWeb项目内存溢出解决方案

本文分享了在运维过程中遇到的Tomcat内存溢出问题排查经验。通过分析,确定问题源于多个项目共用一个Tomcat实例导致内存分配不足。文章详细介绍了如何调整Tomcat的内存配置,包括修改注册表和catalina.bat文件,最终解决了内存溢出问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何排查项目内存溢出的问题出在哪呢?

最近在运维一个项目中,用户提出在使用图片上传或提交的时候总会出现页面无响应;为了排查问题,进入后台打开tomcat的startup.bat运行项目;发现项目会自动报内存溢出,接下来,一阵分析后,得出三个结论:

1.服务器内存不够?(显然不可能,打开资源管理器,内存占用率不到一半)

2.代码不规范,引起的内存溢出?(排除,项目已经运行了一年时间)

3.tomcat内存超出?(可能存在此问题,继续排查)

带着第三个问题,我打开了webapps,发现开发在一个tomcat下放了四个项目同时运行o(╥﹏╥)o,确定是第三个问题;

首先tomcat之前是以服务启动的,打开注册表(cmd输入regedit),发现tomcat内存是-XX:MaxPermSize=4096;最小内存是-XX:PermSize=2048;此时最对这两个值做了变更;

又因为我是以start.bat启动的,所以需要在tomcat/bin/catalina.bat中重新加入tomcat内存设置

注:加入位置为@echo off下面

set CATALINA_OPTS=%CATALINA_OPTS% -server  -XX:PermSize=256M -XX:MaxNewSize=4096M -XX:MaxPermSize=5120M;

总结:tomcat以服务启动,更改内存大小需要在注册表中更改如下图;

如果是以bat文件启动,需要更改catalina.bat中的文件内存。

怎么样?看明白了吗?如果哪写的不明白,请你提出意见,下次改善

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值