WebLogic: 内存溢出
2015-09-24 16:19 tao先生 阅读(1191) 评论(0) 编辑 收藏 举报每次部署完项目,重启Weblogic服务,总是遇到java.lang.OutOfMemoryError: PermGen space,其实物理内存也是够的,当时的解决方法就是多重启几次Weblogic来解决这个问题,但是总觉得问题不应该用网管式的方法来解决问题,重启不应该是万能的,想着问题可能出现在PermGen space内存的大小上,但是根据JVM的机制,不是有自动回收垃圾机制吗?为什么不会自动回收呢?在网上找了找资料,了解到虽说JVM有自动回收机制,但是JVM对load class不会回收的,PermGen space(这块正好是存放Class文件和Meta文件),所以如果PermGen space设置空间太小必然导致内存的溢出。
如何解决PermGen space(permanent heap generation space 永久堆栈方法区)内存大小的问题,其实非常简单,直接对“setDomainEnv.sh”文件中的 MaxPermSize进行设置,根据服务器内存大小对其进行设置。
setDomainEnv.sh在 “/base_domain/bin”这个目录下,
vi setDomainEnv.sh
然后查找“MaxPermSize”,在vi编辑下 ?MaxPermSize,查找到这个值以后,修改64位和32位这两个最大永久值,接下重启Weblogic就OK了。
MEM_MAX_PERM_SIZE_64BIT="-XX:MaxPermSize=512m" export MEM_MAX_PERM_SIZE_64BIT MEM_MAX_PERM_SIZE_32BIT="-XX:MaxPermSize=512m" export MEM_MAX_PERM_SIZE_32BIT
PS:附加一点Weblogic的基本操作,防止自己再次忘记
- 杀掉Weblogic服务,首先查找 ps -ef|grep weblogic,然后根据ID号,kill -9 ID
- 后台启动Weblogic服务器(进入/base_domain/bin目录下):nohup ./startWeblogic.sh &
————————————————————————————————
WHOOOOSHHHHHHHHHHHH…………
Blimey what was that?
That was your life mate
Oh, I was not quite ready. Can I have another go?
Sorry mate, only one per person.