webLogic内存溢出解决方案

  • Post author:
  • Post category:其他


初次接触weblogic便被它强大的功能所折服。

关于如何安装和配置weblogic度娘上有很多的介绍,这里就不再赘述了。

可以参考以下链接:

http://blog.csdn.net/hackage4619/article/details/55189106

————————————————————————————————–常见的内存溢出介绍———————————————————————————————————-


导致

OutOfMemoryError异常的常见原因有以下几种:

1.

内存中加载的数据量过于庞大,如一次从数据库取出过多数据;

2.

集合类中有对对象的引用,使用完后未清空,使得

JVM不能回收;

3.

代码中存在死循环或循环产生过多重复的对象实体;

4.

使用的第三方软件中的

BUG;

5.

启动参数内存值设定的过小;


此错误常见的错误提示:

1. tomcat:java.lang.OutOfMemoryError: PermGen space

2. tomcat:java.lang.OutOfMemoryError: Java heap space

3. weblogic:Root cause of ServletException java.lang.OutOfMemoryError

4. resin:java.lang.OutOfMemoryError

5. java:java.lang.OutOfMemoryError

—————————————————————————————————————————————————————————————————————————————

正餐来了,当安装和配置完weblogic以后满怀欣喜的部署了项目想要一睹芳容,尼玛怎么也跑不起来,控制台报错如下:

java.lang.OutOfMemoryError: PermGen space

这个错误很明显是内存溢出,通过一番查找后终于找到了修改的地方,因为使用的是myeclipse继承weblogic,解决方法如下:

知其然必要知其所以然,下面介绍下配置参数的一些含义:



-vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M

-vmargs 说明后面是JVM的参数,所以后面的其实都是JVM的参数了






-Xms128m JVM

初始分配的堆内存






-Xmx512m JVM

最大允许分配的堆内存,按需分配






-XX:PermSize=64M JVM

初始分配的非堆内存






-XX:MaxPermSize=128M JVM

最大允许分配的非堆内存,按需分配











那么问题又来了,什么是堆什么是非堆呢?





————————————————初识java内存概念——————————————————————–






下图是之前自己学习时整理的笔记,讲的比较浅显。









什么是栈?



什么是堆?什么是方法区?





答:





栈:用于存放局部变量





堆:存放new出来的对象





方法区:存放类的信息(代码)、static变量、常量池等   //注:方法区也是属于堆的一部分







解析

Student s1=new Student()在内存中的分配


过程

1




jvm


执行到


Student


,首先在堆中查找是不是有这个类的信息,没有就通过类加载器把这个类的信息(属性和方法等)加载进堆中。

2

、执行


Student s1


在栈中分配空间存放变量


s1


。(此时这个变量并没有指向其他内存空间)

3

、执行


new Student()


,在堆中的方法区外分配一片内存存放


new


出来的对象信息(对象的方法只是存放地址指向方法区里面的方法)

4

、执行


=


赋值,将


new


出来的对象的内存空间的首地址赋给


s1




内存分析示意图:


————————————————————————————————————————————










——————————————————JVM内存进阶——————————————————————-





现在我们队堆的概念有了一个大概的了解,那么回到上面的问题,什么是非堆呢?






其实这里是个叫法的不同,非堆其实指的就是上面的方法区。





关于这一部分的内容,小白就不说自己的感悟了(怕误导大家),在度娘上看了位大神的博客觉得甚是牛逼(ps:虽然我看得一知半解):





附上链接地址:http://www.cnblogs.com/dingyingsi/p/3760447.html






有兴趣的朋友可以看看,说的真的很好。





在这也感谢下这位大牛分享的姿势。。。fuck。。知识。—做人不能太污啊
安静






————————————————————————————————————————————






最后总结:码海无涯,回头也不是岸啊
大笑





版权声明:本文为qq_27942713原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。