Jboss—java.lang.OutOfMemoryError:Metaspace (解决内存溢出,扩大内存)

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/aiTCR/article/details/81637434

讲一讲故事开头吧,小菜自己觉得非常重要!

今天Jenkins构建项目后端成功,可怕的是到了服务器上部署时就失败了。开始拍错,先是怀疑Jenkins在捣乱呢,因此在本地打包发布,非常顺利的成功了。把这个war包拿到服务器上去部署,竟然失败!排除Jenkins的嫌疑了。这就跑不了是服务器在使坏了, 怎么回事儿呢也不知道如何下手了,看看Jboss的日志吧,很多有关定时器调用超时的错误提示,只有这么一个特别的:java.lang.OutOfMemoryError:Metaspace。内存溢出,好,很好,那就来扩大就好了。

1、打开Jboss下的bin/standalone.conf文件
找到:
JAVA_OPTS="-Xms1303m -Xmx1303m -XX:MaxMetaspaceSize=512m -Djava.net.preferIPv4Stack=true"
修改:MaxMetaspaceSize=512m 保存,很好。

2、将standalone.sh运行一下(我是在linux下操作的,如果你是Windows环境请直接点击运行standalone.bat文件)
命令:./standalone.sh
运行这个命令时报错了。提示有的地址正在使用,杀死所有进程来解决。
命令:kill -9 进程ID
再次运行:./standalone.sh

3、成功解决问题。

故事起因
是加载到内存中的 class 数量太多或者体积太大,然后JVM就会挂掉。主要是不会JVM优化,代码优化所导致。

怎样避免呢?

还是要先学习鸭!这也是最大的收获了,有知道了学习JVM的重要性了。加油鸭!

展开阅读全文

内存溢出java.lang.OutOfMemoryError: PermGen space?

04-11

各位大神,在myeclipse中发布一个项目运行起来开始是没有报错的,今天突然就报了这个错,也不知道是不是动了哪个地方导致的,现在已启动tomcat,访问地址就会报这个错,google了一下说是内存溢出,需要设置JAVA_OPTS,可是我找不到在哪配置啊,还请大神指点。。。。rnrnjava.lang.OutOfMemoryError: PermGen spacern at java.lang.ClassLoader.defineClass1(Native Method)rn at java.lang.ClassLoader.defineClass(ClassLoader.java:621)rn at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)rn at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)rn at java.net.URLClassLoader.access$000(URLClassLoader.java:56)rn at java.net.URLClassLoader$1.run(URLClassLoader.java:195)rn at java.security.AccessController.doPrivileged(Native Method)rn at java.net.URLClassLoader.findClass(URLClassLoader.java:188)rn at java.lang.ClassLoader.loadClass(ClassLoader.java:307)rn at java.lang.ClassLoader.loadClass(ClassLoader.java:252)rn at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)rn at java.lang.ClassLoader.defineClass1(Native Method)rn at java.lang.ClassLoader.defineClass(ClassLoader.java:621)rn at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)rn at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)rn at java.net.URLClassLoader.access$000(URLClassLoader.java:56)rn at java.net.URLClassLoader$1.run(URLClassLoader.java:195)rn at java.security.AccessController.doPrivileged(Native Method)rn at java.net.URLClassLoader.findClass(URLClassLoader.java:188)rn at java.lang.ClassLoader.loadClass(ClassLoader.java:307)rn at java.lang.ClassLoader.loadClass(ClassLoader.java:252)rn at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)rn at org.eclipse.jdt.internal.compiler.parser.Parser.createJavadocParser(Parser.java:8396)rn at org.eclipse.jdt.internal.compiler.parser.Parser.(Parser.java:889)rn at org.eclipse.jdt.internal.compiler.Compiler.initializeParser(Compiler.java:685)rn at org.eclipse.jdt.internal.compiler.Compiler.(Compiler.java:283)rn at org.eclipse.jdt.internal.compiler.Compiler.(Compiler.java:159)rn at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:423)rn at org.apache.jasper.compiler.Compiler.compile(Compiler.java:356)rn at org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)rn at org.apache.jasper.compiler.Compiler.compile(Compiler.java:321)rn at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)rn 论坛

跪求:内存溢出java.lang.OutOfMemoryError: PermGen space

07-09

各位前辈、各位高手:rnrn 我最近做了一个小项目(通讯录),是用Struts+Hibernate+Spring写的;rnrn 运行环境、jdk1.5.0 + TomCat5.5.17 + mySql4.1.20rnrn 开发工具、 eclipse-SDK-3.1.2-win32.zip + EnterpriseWorkbenchInstaller_4.1.1GA_E3.1.exe(myEclipse)rnrn   该程序在本地测试和编译均能通过、但不管是在本地还放到电信机房服务器处运行时间一长(尤其是不停的操作和使用这个系统),就会报 java.lang.OutOfMemoryError: PermGen space 这个错误;rnrn 争对 java.lang.OutOfMemoryError: PermGen space 这个问题、baidu、google、Csdn.net我都找过相关的解决方法,似乎所有提供的解决方法、都无济于事;rnrn 另一个项目(客户管理系统)、是用 Struts+Hibernate 开发的;也存在这个问题、这几天我公司销售人员正在用这个系统、我采取的办法一但在TomCat日志中出现在 java.lang.OutOfMemoryError 错误、我便重启一次Tomcat;rnrn 请提供思路解决;rnrn 补充、有人提出、我的Session没有及时关闭、我的数据库连接没有及时关闭;但把整个项目打包发给几个写Java程序的朋友、他们大多数看过之后,认为程序没有多大问题(当然这是他们的意见,还需各位前辈在百忙之中、牺牲一点你们时间,帮帮我分析及提供解决思路);rnrn 我的QQ:544588699、MSN:renwei0905@msn.com 论坛

没有更多推荐了,返回首页