java.exe占用的内存越来越多……直到出现java.lang.OutOfMemoryErr...

发布于 2021-11-12 18:39:18 字数 1015 浏览 880 评论 7

最近才发现TOMCAT启动一段时间后,总是出现java.lang.OutOfMemoryError PermGen space这个错误,后来搜索到答案称:这一部分用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域,它和和存放Instance的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS的话,就很可能出现PermGen space错误。这种错误常见在web服务器对JSP进行pre compile的时候。根据提示,修改TOMCAT_HOME/bin/catalina.sh
在“echo "Using CATALINA_BASE:   $CATALINA_BASE"”上面加入以下行:

JAVA_OPTS="-server -Xms800m -Xmx800m  -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true "

仍然不行。

打开任务管理器查看内存使用情况,发现,刚启动TOMCAT时JAVA.EXE使用内存在35M左右,后打开网页浏览,每点一个链接JAVA.EXE占用的内存不断增加,不会降低,即便是关闭所有浏览页内存也不会降,当内存占到140多M时出现java.lang.OutOfMemoryError PermGen space这个错误,我想内存占用不应该只增不降,应该是本人代码的问题,但不知如何下手去查,请各位老师指点,谢谢了……

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

反目相谮 2021-11-13 20:40:33

你先用jvisualvm之类的工具看下,把场景发出来看看,不然我们只能猜啊!

眼泪淡了忧伤 2021-11-13 20:39:20

非常感谢大家的指点,虽然有些还看不懂^_^,不过我边学边试一下,谢谢了哈……

好听的两个字的网名 2021-11-13 20:13:15

引用来自#6楼“SeekerLee”的帖子

引用来自#5楼“YiChen”的帖子

我们是一般会每天重启一次tomcat释放一下内存

在高点击的情况下 Tomcat会输出这个异常,估计是最后有什么资源没有回收

java.util.ConcurrentModificationException

        at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:448)

        at java.util.AbstractList$Itr.remove(AbstractList.java:433)

        at java.util.AbstractCollection.remove(AbstractCollection.java:255)

        at org.apache.coyote.RequestGroupInfo.removeRequestProcessor(RequestGroupInfo.java:17)

        at org.apache.coyote.RequestInfo.setGlobalProcessor(RequestInfo.java:96)

        at org.apache.coyote.http11.Http11Protocol$MXPoolListener.threadEnd(Http11Protocol.java:620)

        at org.apache.tomcat.util.threads.ThreadPool.removeThread(ThreadPool.java:279)

        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:727)

        at java.lang.Thread.run(Thread.java:534)

柒夜笙歌凉 2021-11-13 18:39:54

引用来自#5楼“YiChen”的帖子

我们是一般会每天重启一次tomcat释放一下内存

在高点击的情况下 Tomcat会输出这个异常,估计是最后有什么资源没有回收

java.util.ConcurrentModificationException

        at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:448)

        at java.util.AbstractList$Itr.remove(AbstractList.java:433)

        at java.util.AbstractCollection.remove(AbstractCollection.java:255)

        at org.apache.coyote.RequestGroupInfo.removeRequestProcessor(RequestGroupInfo.java:17)

        at org.apache.coyote.RequestInfo.setGlobalProcessor(RequestInfo.java:96)

        at org.apache.coyote.http11.Http11Protocol$MXPoolListener.threadEnd(Http11Protocol.java:620)

        at org.apache.tomcat.util.threads.ThreadPool.removeThread(ThreadPool.java:279)

        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:727)

        at java.lang.Thread.run(Thread.java:534)

情绪失控 2021-11-13 16:07:04

我们是一般会每天重启一次tomcat释放一下内存

在高点击的情况下 Tomcat会输出这个异常,估计是最后有什么资源没有回收

java.util.ConcurrentModificationException

        at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:448)

        at java.util.AbstractList$Itr.remove(AbstractList.java:433)

        at java.util.AbstractCollection.remove(AbstractCollection.java:255)

        at org.apache.coyote.RequestGroupInfo.removeRequestProcessor(RequestGroupInfo.java:17)

        at org.apache.coyote.RequestInfo.setGlobalProcessor(RequestInfo.java:96)

        at org.apache.coyote.http11.Http11Protocol$MXPoolListener.threadEnd(Http11Protocol.java:620)

        at org.apache.tomcat.util.threads.ThreadPool.removeThread(ThreadPool.java:279)

        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:727)

        at java.lang.Thread.run(Thread.java:534)

奢望 2021-11-13 11:49:08

http://www.brokenbuild.com/blog/2006/08/04/java-jvm-gc-permgen-and-memory-options/

和你的问题应该一致。跟踪类的载入情况,看是否一直有新的类产生。

柠檬 2021-11-13 06:10:56

内存溢出

1、检查代码是否open了本地IO,而且没有及时release

2、检查代码是否存在不合理的递归程序

3、文件(图片)上传程序是否有问题?

4、应用是否包含了较大的对象(如包含超大文本),而且被单例实例持续引用着

5、最后用JProfile跟踪下类的实例引用情况

6、最笨的办法就是停止所有功能,然后逐个加上去并排查。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文