Resin,内存溢出 最近由于resin主机经常报如下错误:
500 Servlet Exception
java.lang.OutOfMemoryError: PermGen space
一旦报这个错,网站再也无法访问,即导致Resin死机.
其实这种现象在Java语言中很正常,我们通常称之为Java内存溢出。由于我们在Java程序中声明了好多对象,占用了内存空间,程序结束时没有将这些对象或对象的引用进行释放,从而导致Java虚拟机(JVM)进行垃圾回收(GC)时,不能够回收这些对象。这样,Java所用的内存就会一直增加,直至溢出,进而导致Resin死机。
原因有二:一是程序不足够健壮;二是Resin设置的虚拟内存太小。
经过分析,程序使用了大量的动态生成类的方法,即用:
Class.forName(name).newInstance()
的方法来生成类,于是,没有办法,只能改为传统方式。同时,在服务接入口增加手工垃圾清理:Runtime.getRuntime().gc()。
修改完成上传后,现象有所改观,但是,多人访问时,还是出现了主述错误。只好采取第二步,要求主机商修改Resin的虚拟内存。
linux下设置方式:
linux下的话 resincontribinit.resin
#
# Sets the commandline arguments.
#
ARGS="-java_home $JAVA_HOME -resin_home $RESIN_HOME -server -Xms256m -Xmx1024m -XX:MaxPermSize=128m"
resin内存溢出 java.lang.OutOfMemoryError: PermGen space
最新推荐文章于 2024-07-29 14:22:26 发布