亚马逊服务器宕机,文件上传后Apusic应用服务器内存溢出并宕机的一种处理

前几日,碰见一个奇怪的现象,连续的文件上传操作,会导致JVM内存溢出,而且是java.lang.OutOfMemoryError: PermGen space,内存的永久保存区域溢出。最终,导致整个Apusic应用服务器宕掉。
对于Permanent Generation space,JVM在运行期是不会进行垃圾清理的,这块内存溢出,一般主要是因为加载的类太多了,超出了JVM的默认值,或者设定的值。一般的解决方案是加大permanent generation space的大小。
但是,在这里将MaxPermSize由原来的128M增加到256M,照样在上传一些文件之后出现同样的问题,估计这块空间再怎么增大,溢出都是迟早的问题。应用在启动的时候,一切正常,说明加载应用的class文件是不成问题的。增加maxPermSize对问题的解决没有意义。
但是,文件上传的操作,怎么会引起permGen space的溢出呢?想不明白?
还是来监控一下应用的日志吧。
整个应用运行期间一切都很正常,debug出来的持久层框架生成的SQL语句都非常正常,只是在某些时间点,并没有规律的时间点总是出现以下的信息:
2011-04-26 18:03:08 INFO [apusic.web.office./office] Closing Spring root WebApplicationContext
Tags:  服务器文件上传 文件上传到服务器 服务器宕机的原因 服务器宕机 亚马逊服务器宕机

延伸阅读

最新评论

发表评论