Java程序员没有遇到过OutOfMemory简直就是不可能的事情!
可见在Java的世界中,太多的不确定因素导致Java运行程序直接崩溃,直接抛出OutOfMemory异常,而一旦遇到了这个问题,调查起来就非常的困难。在JDK 5.0以前,OutOfMemory只有这么一句话: java.lang.OutOfMemory Exception…基本上无从下手,无从分析。从JDK 5.0以后对OutOfMemory增加了许多的详细说明,为这个异常的分析提供了很大的便利。
这次遇到的问题就是会抛出OutOfMemory:PermGen Space的异常,这个异常非常有意思,根据【此文章】的描述,这是一个Sun JVM的bug,从2003年开始,一只到现在都没有解决。而且提出来的解决方案是使用JRockit。Bug产生的原因已经找到,就是因为JVM在分配PermGen Space的时候出现了PermGen Space不足的情况,默认情况下 PermGen的大小为64M,在不换用JRockit的情况下,可以在启动JVM的时候添加一个参数:
那么究竟什么是PermGen呢?
可见在Java的世界中,太多的不确定因素导致Java运行程序直接崩溃,直接抛出OutOfMemory异常,而一旦遇到了这个问题,调查起来就非常的困难。在JDK 5.0以前,OutOfMemory只有这么一句话: java.lang.OutOfMemory Exception…基本上无从下手,无从分析。从JDK 5.0以后对OutOfMemory增加了许多的详细说明,为这个异常的分析提供了很大的便利。
这次遇到的问题就是会抛出OutOfMemory:PermGen Space的异常,这个异常非常有意思,根据【此文章】的描述,这是一个Sun JVM的bug,从2003年开始,一只到现在都没有解决。而且提出来的解决方案是使用JRockit。Bug产生的原因已经找到,就是因为JVM在分配PermGen Space的时候出现了PermGen Space不足的情况,默认情况下 PermGen的大小为64M,在不换用JRockit的情况下,可以在启动JVM的时候添加一个参数:
复制内容到剪贴板 程序代码
-XX: MaxPermSize= 128m| 256m| 512m。
那么究竟什么是PermGen呢?
Tags: PermGen
这个星期,已经出现两次OutOfMemoryError,都是因为PermGen space。之前也出现过,不过频率非常低,所以没怎么在意。这次查了一下资料,在jvm的参数里添加了修改了MaxPermSize,同时将Xms设置成512M,Xmx的值设置成1.5G,反正哪台服务器4G的内存大部分闲置着。
这样设置好了,感觉速度快一些了(心理作用?),那几个参数的作用还得等待时间的考验。
下面的内容转自:http://blog.ccidnet.com/blog-htm-do-showone-uid-20630-itemid-165750-type-blog.html
1、
这样设置好了,感觉速度快一些了(心理作用?),那几个参数的作用还得等待时间的考验。
下面的内容转自:http://blog.ccidnet.com/blog-htm-do-showone-uid-20630-itemid-165750-type-blog.html
1、
Tags: PermGen